summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/pacman/Makefile.am4
-rw-r--r--src/pacman/callback.c184
-rw-r--r--src/pacman/callback.h8
-rw-r--r--src/pacman/conf.c807
-rw-r--r--src/pacman/conf.h31
-rw-r--r--src/pacman/database.c40
-rw-r--r--src/pacman/deptest.c9
-rw-r--r--src/pacman/package.c139
-rw-r--r--src/pacman/package.h16
-rw-r--r--src/pacman/pacman.c786
-rw-r--r--src/pacman/pacman.h6
-rw-r--r--src/pacman/po/.gitignore4
-rw-r--r--src/pacman/po/LINGUAS26
-rw-r--r--src/pacman/po/Makefile.in.in444
-rw-r--r--src/pacman/po/Makevars26
-rw-r--r--src/pacman/po/POTFILES.in14
-rw-r--r--src/pacman/po/ca.po1154
-rw-r--r--src/pacman/po/cs.po1130
-rw-r--r--src/pacman/po/da.po1117
-rw-r--r--src/pacman/po/de.po1153
-rw-r--r--src/pacman/po/el.po1127
-rw-r--r--src/pacman/po/en_GB.po1117
-rw-r--r--src/pacman/po/es.po1173
-rw-r--r--src/pacman/po/fi.po1123
-rw-r--r--src/pacman/po/fr.po1163
-rw-r--r--src/pacman/po/hu.po1131
-rw-r--r--src/pacman/po/it.po1153
-rw-r--r--src/pacman/po/kk.po1118
-rw-r--r--src/pacman/po/nb.po1124
-rw-r--r--src/pacman/po/pacman.pot1070
-rw-r--r--src/pacman/po/pl.po1138
-rw-r--r--src/pacman/po/pt.po1167
-rw-r--r--src/pacman/po/pt_BR.po1153
-rw-r--r--src/pacman/po/remove-potcdate.sin19
-rw-r--r--src/pacman/po/ro.po1163
-rw-r--r--src/pacman/po/ru.po1133
-rw-r--r--src/pacman/po/sk.po1130
-rw-r--r--src/pacman/po/sr.po1125
-rw-r--r--src/pacman/po/sr@latin.po1127
-rw-r--r--src/pacman/po/sv.po1116
-rw-r--r--src/pacman/po/tr.po1120
-rw-r--r--src/pacman/po/uk.po1127
-rw-r--r--src/pacman/po/zh_CN.po1085
-rw-r--r--src/pacman/query.c229
-rw-r--r--src/pacman/remove.c83
-rw-r--r--src/pacman/sync.c472
-rw-r--r--src/pacman/upgrade.c154
-rw-r--r--src/pacman/util.c654
-rw-r--r--src/pacman/util.h20
-rw-r--r--src/util/.gitignore2
-rw-r--r--src/util/Makefile.am22
-rw-r--r--src/util/cleanupdelta.c39
-rw-r--r--src/util/pacsort.c394
-rw-r--r--src/util/pactree.c281
-rw-r--r--src/util/testdb.c94
-rw-r--r--src/util/testpkg.c42
-rw-r--r--src/util/vercmp.c8
57 files changed, 32716 insertions, 1778 deletions
diff --git a/src/pacman/Makefile.am b/src/pacman/Makefile.am
index 31e8b134..3790bdf4 100644
--- a/src/pacman/Makefile.am
+++ b/src/pacman/Makefile.am
@@ -1,6 +1,9 @@
+SUBDIRS = po
+
# paths set at make time
conffile = ${sysconfdir}/pacman.conf
dbpath = ${localstatedir}/lib/pacman/
+gpgdir = ${sysconfdir}/pacman.d/gnupg/
cachedir = ${localstatedir}/cache/pacman/pkg/
logfile = ${localstatedir}/log/pacman.log
@@ -10,6 +13,7 @@ DEFS = -DLOCALEDIR=\"@localedir@\" \
-DCONFFILE=\"$(conffile)\" \
-DROOTDIR=\"$(ROOTDIR)\" \
-DDBPATH=\"$(dbpath)\" \
+ -DGPGDIR=\"$(gpgdir)\" \
-DCACHEDIR=\"$(cachedir)\" \
-DLOGFILE=\"$(logfile)\" \
@DEFS@
diff --git a/src/pacman/callback.c b/src/pacman/callback.c
index 46ff2e88..237ccea0 100644
--- a/src/pacman/callback.c
+++ b/src/pacman/callback.c
@@ -81,7 +81,7 @@ static double get_update_timediff(int first_call)
}
}
- return(retval);
+ return retval;
}
/* refactored from cb_trans_progress */
@@ -153,96 +153,96 @@ static void fill_progress(const int bar_percent, const int disp_percent,
/* callback to handle messages/notifications from libalpm transactions */
-void cb_trans_evt(pmtransevt_t event, void *data1, void *data2)
+void cb_trans_evt(alpm_transevt_t event, void *data1, void *data2)
{
switch(event) {
- case PM_TRANS_EVT_CHECKDEPS_START:
+ case ALPM_TRANS_EVT_CHECKDEPS_START:
printf(_("checking dependencies...\n"));
break;
- case PM_TRANS_EVT_FILECONFLICTS_START:
+ case ALPM_TRANS_EVT_FILECONFLICTS_START:
if(config->noprogressbar) {
printf(_("checking for file conflicts...\n"));
}
break;
- case PM_TRANS_EVT_RESOLVEDEPS_START:
+ case ALPM_TRANS_EVT_RESOLVEDEPS_START:
printf(_("resolving dependencies...\n"));
break;
- case PM_TRANS_EVT_INTERCONFLICTS_START:
+ case ALPM_TRANS_EVT_INTERCONFLICTS_START:
printf(_("looking for inter-conflicts...\n"));
break;
- case PM_TRANS_EVT_ADD_START:
+ case ALPM_TRANS_EVT_ADD_START:
if(config->noprogressbar) {
printf(_("installing %s...\n"), alpm_pkg_get_name(data1));
}
break;
- case PM_TRANS_EVT_ADD_DONE:
- alpm_logaction("installed %s (%s)\n",
+ case ALPM_TRANS_EVT_ADD_DONE:
+ alpm_logaction(config->handle, "installed %s (%s)\n",
alpm_pkg_get_name(data1),
alpm_pkg_get_version(data1));
display_optdepends(data1);
break;
- case PM_TRANS_EVT_REMOVE_START:
+ case ALPM_TRANS_EVT_REMOVE_START:
if(config->noprogressbar) {
printf(_("removing %s...\n"), alpm_pkg_get_name(data1));
}
break;
- case PM_TRANS_EVT_REMOVE_DONE:
- alpm_logaction("removed %s (%s)\n",
+ case ALPM_TRANS_EVT_REMOVE_DONE:
+ alpm_logaction(config->handle, "removed %s (%s)\n",
alpm_pkg_get_name(data1),
alpm_pkg_get_version(data1));
break;
- case PM_TRANS_EVT_UPGRADE_START:
+ case ALPM_TRANS_EVT_UPGRADE_START:
if(config->noprogressbar) {
printf(_("upgrading %s...\n"), alpm_pkg_get_name(data1));
}
break;
- case PM_TRANS_EVT_UPGRADE_DONE:
- alpm_logaction("upgraded %s (%s -> %s)\n",
+ case ALPM_TRANS_EVT_UPGRADE_DONE:
+ alpm_logaction(config->handle, "upgraded %s (%s -> %s)\n",
(char *)alpm_pkg_get_name(data1),
(char *)alpm_pkg_get_version(data2),
(char *)alpm_pkg_get_version(data1));
display_new_optdepends(data2,data1);
break;
- case PM_TRANS_EVT_INTEGRITY_START:
+ case ALPM_TRANS_EVT_INTEGRITY_START:
if(config->noprogressbar) {
printf(_("checking package integrity...\n"));
}
break;
- case PM_TRANS_EVT_DELTA_INTEGRITY_START:
+ case ALPM_TRANS_EVT_DELTA_INTEGRITY_START:
printf(_("checking delta integrity...\n"));
break;
- case PM_TRANS_EVT_DELTA_PATCHES_START:
+ case ALPM_TRANS_EVT_DELTA_PATCHES_START:
printf(_("applying deltas...\n"));
break;
- case PM_TRANS_EVT_DELTA_PATCH_START:
+ case ALPM_TRANS_EVT_DELTA_PATCH_START:
printf(_("generating %s with %s... "), (char *)data1, (char *)data2);
break;
- case PM_TRANS_EVT_DELTA_PATCH_DONE:
+ case ALPM_TRANS_EVT_DELTA_PATCH_DONE:
printf(_("success!\n"));
break;
- case PM_TRANS_EVT_DELTA_PATCH_FAILED:
+ case ALPM_TRANS_EVT_DELTA_PATCH_FAILED:
printf(_("failed.\n"));
break;
- case PM_TRANS_EVT_SCRIPTLET_INFO:
- printf("%s", (char*)data1);
+ case ALPM_TRANS_EVT_SCRIPTLET_INFO:
+ printf("%s", (char *)data1);
break;
- case PM_TRANS_EVT_RETRIEVE_START:
- printf(_(":: Retrieving packages from %s...\n"), (char*)data1);
+ case ALPM_TRANS_EVT_RETRIEVE_START:
+ printf(_(":: Retrieving packages from %s...\n"), (char *)data1);
break;
- case PM_TRANS_EVT_DISKSPACE_START:
+ case ALPM_TRANS_EVT_DISKSPACE_START:
if(config->noprogressbar) {
printf(_("checking available disk space...\n"));
}
break;
/* all the simple done events, with fallthrough for each */
- case PM_TRANS_EVT_FILECONFLICTS_DONE:
- case PM_TRANS_EVT_CHECKDEPS_DONE:
- case PM_TRANS_EVT_RESOLVEDEPS_DONE:
- case PM_TRANS_EVT_INTERCONFLICTS_DONE:
- case PM_TRANS_EVT_INTEGRITY_DONE:
- case PM_TRANS_EVT_DELTA_INTEGRITY_DONE:
- case PM_TRANS_EVT_DELTA_PATCHES_DONE:
- case PM_TRANS_EVT_DISKSPACE_DONE:
+ case ALPM_TRANS_EVT_FILECONFLICTS_DONE:
+ case ALPM_TRANS_EVT_CHECKDEPS_DONE:
+ case ALPM_TRANS_EVT_RESOLVEDEPS_DONE:
+ case ALPM_TRANS_EVT_INTERCONFLICTS_DONE:
+ case ALPM_TRANS_EVT_INTEGRITY_DONE:
+ case ALPM_TRANS_EVT_DELTA_INTEGRITY_DONE:
+ case ALPM_TRANS_EVT_DELTA_PATCHES_DONE:
+ case ALPM_TRANS_EVT_DISKSPACE_DONE:
/* nothing */
break;
}
@@ -251,21 +251,25 @@ void cb_trans_evt(pmtransevt_t event, void *data1, void *data2)
/* callback to handle questions from libalpm transactions (yes/no) */
/* TODO this is one of the worst ever functions written. void *data ? wtf */
-void cb_trans_conv(pmtransconv_t event, void *data1, void *data2,
+void cb_trans_conv(alpm_transconv_t event, void *data1, void *data2,
void *data3, int *response)
{
switch(event) {
- case PM_TRANS_CONV_INSTALL_IGNOREPKG:
- *response = yesno(_(":: %s is in IgnorePkg/IgnoreGroup. Install anyway?"),
- alpm_pkg_get_name(data1));
+ case ALPM_TRANS_CONV_INSTALL_IGNOREPKG:
+ if(!config->op_s_downloadonly) {
+ *response = yesno(_(":: %s is in IgnorePkg/IgnoreGroup. Install anyway?"),
+ alpm_pkg_get_name(data1));
+ } else {
+ *response = 1;
+ }
break;
- case PM_TRANS_CONV_REPLACE_PKG:
+ case ALPM_TRANS_CONV_REPLACE_PKG:
*response = yesno(_(":: Replace %s with %s/%s?"),
alpm_pkg_get_name(data1),
(char *)data3,
alpm_pkg_get_name(data2));
break;
- case PM_TRANS_CONV_CONFLICT_PKG:
+ case ALPM_TRANS_CONV_CONFLICT_PKG:
/* data parameters: target package, local package, conflict (strings) */
/* print conflict only if it contains new information */
if(strcmp(data1, data3) == 0 || strcmp(data2, data3) == 0) {
@@ -281,7 +285,7 @@ void cb_trans_conv(pmtransconv_t event, void *data1, void *data2,
(char *)data2);
}
break;
- case PM_TRANS_CONV_REMOVE_PKGS:
+ case ALPM_TRANS_CONV_REMOVE_PKGS:
{
alpm_list_t *unresolved = (alpm_list_t *) data1;
alpm_list_t *namelist = NULL, *i;
@@ -304,11 +308,11 @@ void cb_trans_conv(pmtransconv_t event, void *data1, void *data2,
alpm_list_free(namelist);
}
break;
- case PM_TRANS_CONV_SELECT_PROVIDER:
+ case ALPM_TRANS_CONV_SELECT_PROVIDER:
{
alpm_list_t *providers = (alpm_list_t *)data1;
int count = alpm_list_count(providers);
- char *depstring = alpm_dep_compute_string((pmdepend_t *)data2);
+ char *depstring = alpm_dep_compute_string((alpm_depend_t *)data2);
printf(_(":: There are %d providers available for %s:\n"), count,
depstring);
free(depstring);
@@ -316,7 +320,7 @@ void cb_trans_conv(pmtransconv_t event, void *data1, void *data2,
*response = select_question(count);
}
break;
- case PM_TRANS_CONV_LOCAL_NEWER:
+ case ALPM_TRANS_CONV_LOCAL_NEWER:
if(!config->op_s_downloadonly) {
*response = yesno(_(":: %s-%s: local version is newer. Upgrade anyway?"),
alpm_pkg_get_name(data1),
@@ -325,7 +329,7 @@ void cb_trans_conv(pmtransconv_t event, void *data1, void *data2,
*response = 1;
}
break;
- case PM_TRANS_CONV_CORRUPTED_PKG:
+ case ALPM_TRANS_CONV_CORRUPTED_PKG:
*response = yesno(_(":: File %s is corrupted. Do you want to delete it?"),
(char *)data1);
break;
@@ -339,7 +343,7 @@ void cb_trans_conv(pmtransconv_t event, void *data1, void *data2,
}
/* callback to handle display of transaction progress */
-void cb_trans_progress(pmtransprog_t event, const char *pkgname, int percent,
+void cb_trans_progress(alpm_transprog_t event, const char *pkgname, int percent,
size_t howmany, size_t current)
{
/* size of line to allocate for text printing (e.g. not progressbar) */
@@ -351,7 +355,7 @@ void cb_trans_progress(pmtransprog_t event, const char *pkgname, int percent,
int len, wclen, wcwid, padwid;
wchar_t *wcstr;
- const int cols = getcols(0);
+ const int cols = getcols();
if(config->noprogressbar || cols == 0) {
return;
@@ -377,22 +381,22 @@ void cb_trans_progress(pmtransprog_t event, const char *pkgname, int percent,
/* set text of message to display */
switch (event) {
- case PM_TRANS_PROGRESS_ADD_START:
+ case ALPM_TRANS_PROGRESS_ADD_START:
opr = _("installing");
break;
- case PM_TRANS_PROGRESS_UPGRADE_START:
+ case ALPM_TRANS_PROGRESS_UPGRADE_START:
opr = _("upgrading");
break;
- case PM_TRANS_PROGRESS_REMOVE_START:
+ case ALPM_TRANS_PROGRESS_REMOVE_START:
opr = _("removing");
break;
- case PM_TRANS_PROGRESS_CONFLICTS_START:
+ case ALPM_TRANS_PROGRESS_CONFLICTS_START:
opr = _("checking for file conflicts");
break;
- case PM_TRANS_PROGRESS_DISKSPACE_START:
+ case ALPM_TRANS_PROGRESS_DISKSPACE_START:
opr = _("checking available disk space");
break;
- case PM_TRANS_PROGRESS_INTEGRITY_START:
+ case ALPM_TRANS_PROGRESS_INTEGRITY_START:
opr = _("checking package integrity");
break;
default:
@@ -400,7 +404,7 @@ void cb_trans_progress(pmtransprog_t event, const char *pkgname, int percent,
}
infolen = cols * 6 / 10;
- if (infolen < 50) {
+ if(infolen < 50) {
infolen = 50;
}
@@ -494,12 +498,13 @@ void cb_dl_progress(const char *filename, off_t file_xfered, off_t file_total)
int totaldownload = 0;
off_t xfered, total;
- double rate = 0.0, timediff = 0.0, f_xfered = 0.0;
+ double rate = 0.0, timediff = 0.0;
unsigned int eta_h = 0, eta_m = 0, eta_s = 0;
+ double rate_human, xfered_human;
+ const char *rate_label, *xfered_label;
int file_percent = 0, total_percent = 0;
- char rate_size = 'K', xfered_size = 'K';
- const int cols = getcols(0);
+ const int cols = getcols();
if(config->noprogressbar || cols == 0 || file_total == -1) {
if(file_xfered == 0) {
@@ -510,7 +515,7 @@ void cb_dl_progress(const char *filename, off_t file_xfered, off_t file_total)
}
infolen = cols * 6 / 10;
- if (infolen < 50) {
+ if(infolen < 50) {
infolen = 50;
}
/* explanation of magic 28 number at the end */
@@ -561,7 +566,7 @@ void cb_dl_progress(const char *filename, off_t file_xfered, off_t file_total)
diff_sec = current_time.tv_sec - initial_time.tv_sec;
diff_usec = current_time.tv_usec - initial_time.tv_usec;
timediff = diff_sec + (diff_usec / 1000000.0);
- rate = xfered / (timediff * 1024.0);
+ rate = xfered / timediff;
/* round elapsed time to the nearest second */
eta_s = (int)(timediff + 0.5);
@@ -573,10 +578,10 @@ void cb_dl_progress(const char *filename, off_t file_xfered, off_t file_total)
/* return if the calling interval was too short */
return;
}
- rate = (xfered - xfered_last) / (timediff * 1024.0);
+ rate = (xfered - xfered_last) / timediff;
/* average rate to reduce jumpiness */
rate = (rate + 2 * rate_last) / 3;
- eta_s = (total - xfered) / (rate * 1024.0);
+ eta_s = (total - xfered) / rate;
rate_last = rate;
xfered_last = xfered;
}
@@ -599,10 +604,17 @@ void cb_dl_progress(const char *filename, off_t file_xfered, off_t file_total)
eta_m = eta_s / 60;
eta_s -= eta_m * 60;
- fname = strdup(filename);
+ /* allocate length+1 (plus null) in case we need to exchange .db for .sig */
+ fname = calloc(1, strlen(filename) + 2);
+ strcpy(fname, filename);
/* strip package or DB extension for cleaner look */
if((p = strstr(fname, ".pkg")) || (p = strstr(fname, ".db"))) {
- *p = '\0';
+ *p = '\0';
+
+ /* tack on a .sig suffix for signatures */
+ if((p = strstr(filename, ".sig"))) {
+ strcat(fname, ".sig");
+ }
}
/* In order to deal with characters from all locales, we have to worry
* about wide characters and their column widths. A lot of stuff is
@@ -618,49 +630,25 @@ void cb_dl_progress(const char *filename, off_t file_xfered, off_t file_total)
/* if padwid is < 0, we need to trim the string so padwid = 0 */
if(padwid < 0) {
int i = filenamelen - 3;
- wchar_t *p = wcfname;
+ wchar_t *wcp = wcfname;
/* grab the max number of char columns we can fill */
- while(i > 0 && wcwidth(*p) < i) {
- i -= wcwidth(*p);
- p++;
+ while(i > 0 && wcwidth(*wcp) < i) {
+ i -= wcwidth(*wcp);
+ wcp++;
}
/* then add the ellipsis and fill out any extra padding */
- wcscpy(p, L"...");
+ wcscpy(wcp, L"...");
padwid = i;
}
- /* Awesome formatting for progress bar. We need a mess of Kb->Mb->Gb stuff
- * here. We'll use limit of 2048 for each until we get some empirical */
- /* rate_size = 'K'; was set above */
- if(rate > 2048.0) {
- rate /= 1024.0;
- rate_size = 'M';
- if(rate > 2048.0) {
- rate /= 1024.0;
- rate_size = 'G';
- /* we should not go higher than this for a few years (9999.9 Gb/s?)*/
- }
- }
-
- f_xfered = xfered / 1024.0; /* convert to K by default */
- /* xfered_size = 'K'; was set above */
- if(f_xfered > 2048.0) {
- f_xfered /= 1024.0;
- xfered_size = 'M';
- if(f_xfered > 2048.0) {
- f_xfered /= 1024.0;
- xfered_size = 'G';
- /* I should seriously hope that archlinux packages never break
- * the 9999.9GB mark... we'd have more serious problems than the progress
- * bar in pacman */
- }
- }
+ rate_human = humanize_size((off_t)rate, '\0', 0, &rate_label);
+ xfered_human = humanize_size(xfered, '\0', 0, &xfered_label);
/* 1 space + filenamelen + 1 space + 7 for size + 1 + 7 for rate + 2 for /s + 1 space + 8 for eta */
- printf(" %ls%-*s %6.1f%c %#6.1f%c/s %02u:%02u:%02u", wcfname,
- padwid, "", f_xfered, xfered_size,
- rate, rate_size, eta_h, eta_m, eta_s);
+ printf(" %ls%-*s %6.1f%s %#6.1f%s/s %02u:%02u:%02u", wcfname,
+ padwid, "", xfered_human, xfered_label, rate_human, rate_label,
+ eta_h, eta_m, eta_s);
free(fname);
free(wcfname);
@@ -674,7 +662,7 @@ void cb_dl_progress(const char *filename, off_t file_xfered, off_t file_total)
}
/* Callback to handle notifications from the library */
-void cb_log(pmloglevel_t level, const char *fmt, va_list args)
+void cb_log(alpm_loglevel_t level, const char *fmt, va_list args)
{
if(!fmt || strlen(fmt) == 0) {
return;
diff --git a/src/pacman/callback.h b/src/pacman/callback.h
index 1109a3b2..30b5a71a 100644
--- a/src/pacman/callback.h
+++ b/src/pacman/callback.h
@@ -25,14 +25,14 @@
#include <alpm.h>
/* callback to handle messages/notifications from libalpm transactions */
-void cb_trans_evt(pmtransevt_t event, void *data1, void *data2);
+void cb_trans_evt(alpm_transevt_t event, void *data1, void *data2);
/* callback to handle questions from libalpm transactions (yes/no) */
-void cb_trans_conv(pmtransconv_t event, void *data1, void *data2,
+void cb_trans_conv(alpm_transconv_t event, void *data1, void *data2,
void *data3, int *response);
/* callback to handle display of transaction progress */
-void cb_trans_progress(pmtransprog_t event, const char *pkgname, int percent,
+void cb_trans_progress(alpm_transprog_t event, const char *pkgname, int percent,
size_t howmany, size_t remain);
/* callback to handle receipt of total download value */
@@ -41,7 +41,7 @@ void cb_dl_total(off_t total);
void cb_dl_progress(const char *filename, off_t file_xfered, off_t file_total);
/* callback to handle messages/notifications from pacman library */
-void cb_log(pmloglevel_t level, const char *fmt, va_list args);
+void cb_log(alpm_loglevel_t level, const char *fmt, va_list args);
#endif /* _PM_CALLBACK_H */
diff --git a/src/pacman/conf.c b/src/pacman/conf.c
index e2a168ee..29e835ce 100644
--- a/src/pacman/conf.c
+++ b/src/pacman/conf.c
@@ -20,13 +20,21 @@
#include "config.h"
+#include <errno.h>
+#include <glob.h>
+#include <limits.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h> /* strdup */
+#include <sys/stat.h>
+#include <sys/utsname.h> /* uname */
+#include <unistd.h>
/* pacman */
#include "conf.h"
#include "util.h"
+#include "pacman.h"
+#include "callback.h"
/* global config variable */
config_t *config = NULL;
@@ -35,38 +43,823 @@ config_t *config_new(void)
{
config_t *newconfig = calloc(1, sizeof(config_t));
if(!newconfig) {
- pm_fprintf(stderr, PM_LOG_ERROR,
+ pm_fprintf(stderr, ALPM_LOG_ERROR,
_("malloc failure: could not allocate %zd bytes\n"),
sizeof(config_t));
- return(NULL);
+ return NULL;
}
/* defaults which may get overridden later */
newconfig->op = PM_OP_MAIN;
- newconfig->logmask = PM_LOG_ERROR | PM_LOG_WARNING;
- /* CONFFILE is defined at compile-time */
+ newconfig->logmask = ALPM_LOG_ERROR | ALPM_LOG_WARNING;
newconfig->configfile = strdup(CONFFILE);
+ newconfig->siglevel = ALPM_SIG_USE_DEFAULT;
- return(newconfig);
+ return newconfig;
}
int config_free(config_t *oldconfig)
{
if(oldconfig == NULL) {
- return(-1);
+ return -1;
}
FREELIST(oldconfig->holdpkg);
FREELIST(oldconfig->syncfirst);
+ FREELIST(oldconfig->ignorepkg);
+ FREELIST(oldconfig->ignoregrp);
+ FREELIST(oldconfig->noupgrade);
+ FREELIST(oldconfig->noextract);
free(oldconfig->configfile);
free(oldconfig->rootdir);
free(oldconfig->dbpath);
free(oldconfig->logfile);
+ free(oldconfig->gpgdir);
+ FREELIST(oldconfig->cachedirs);
free(oldconfig->xfercommand);
free(oldconfig->print_format);
+ free(oldconfig->arch);
free(oldconfig);
oldconfig = NULL;
- return(0);
+ return 0;
+}
+
+/** Helper function for download_with_xfercommand() */
+static char *get_filename(const char *url) {
+ char *filename = strrchr(url, '/');
+ if(filename != NULL) {
+ filename++;
+ }
+ return filename;
+}
+
+/** Helper function for download_with_xfercommand() */
+static char *get_destfile(const char *path, const char *filename) {
+ char *destfile;
+ /* len = localpath len + filename len + null */
+ size_t len = strlen(path) + strlen(filename) + 1;
+ destfile = calloc(len, sizeof(char));
+ snprintf(destfile, len, "%s%s", path, filename);
+
+ return destfile;
+}
+
+/** Helper function for download_with_xfercommand() */
+static char *get_tempfile(const char *path, const char *filename) {
+ char *tempfile;
+ /* len = localpath len + filename len + '.part' len + null */
+ size_t len = strlen(path) + strlen(filename) + 6;
+ tempfile = calloc(len, sizeof(char));
+ snprintf(tempfile, len, "%s%s.part", path, filename);
+
+ return tempfile;
+}
+
+/** External fetch callback */
+static int download_with_xfercommand(const char *url, const char *localpath,
+ int force) {
+ int ret = 0;
+ int retval;
+ int usepart = 0;
+ struct stat st;
+ char *parsedcmd,*tempcmd;
+ char cwd[PATH_MAX];
+ int restore_cwd = 0;
+ char *destfile, *tempfile, *filename;
+
+ if(!config->xfercommand) {
+ return -1;
+ }
+
+ filename = get_filename(url);
+ if(!filename) {
+ return -1;
+ }
+ destfile = get_destfile(localpath, filename);
+ tempfile = get_tempfile(localpath, filename);
+
+ if(force && stat(tempfile, &st) == 0) {
+ unlink(tempfile);
+ }
+ if(force && stat(destfile, &st) == 0) {
+ unlink(destfile);
+ }
+
+ tempcmd = strdup(config->xfercommand);
+ /* replace all occurrences of %o with fn.part */
+ if(strstr(tempcmd, "%o")) {
+ usepart = 1;
+ parsedcmd = strreplace(tempcmd, "%o", tempfile);
+ free(tempcmd);
+ tempcmd = parsedcmd;
+ }
+ /* replace all occurrences of %u with the download URL */
+ parsedcmd = strreplace(tempcmd, "%u", url);
+ free(tempcmd);
+
+ /* save the cwd so we can restore it later */
+ if(getcwd(cwd, PATH_MAX) == NULL) {
+ pm_printf(ALPM_LOG_ERROR, _("could not get current working directory\n"));
+ } else {
+ restore_cwd = 1;
+ }
+
+ /* cwd to the download directory */
+ if(chdir(localpath)) {
+ pm_printf(ALPM_LOG_WARNING, _("could not chdir to download directory %s\n"), localpath);
+ ret = -1;
+ goto cleanup;
+ }
+ /* execute the parsed command via /bin/sh -c */
+ pm_printf(ALPM_LOG_DEBUG, "running command: %s\n", parsedcmd);
+ retval = system(parsedcmd);
+
+ if(retval == -1) {
+ pm_printf(ALPM_LOG_WARNING, _("running XferCommand: fork failed!\n"));
+ ret = -1;
+ } else if(retval != 0) {
+ /* download failed */
+ pm_printf(ALPM_LOG_DEBUG, "XferCommand command returned non-zero status "
+ "code (%d)\n", retval);
+ ret = -1;
+ } else {
+ /* download was successful */
+ ret = 0;
+ if(usepart) {
+ if(rename(tempfile, destfile)) {
+ pm_printf(ALPM_LOG_ERROR, _("could not rename %s to %s (%s)\n"),
+ tempfile, destfile, strerror(errno));
+ ret = -1;
+ }
+ }
+ }
+
+cleanup:
+ /* restore the old cwd if we have it */
+ if(restore_cwd && chdir(cwd) != 0) {
+ pm_printf(ALPM_LOG_ERROR, _("could not change directory to %s (%s)\n"),
+ cwd, strerror(errno));
+ }
+
+ if(ret == -1) {
+ /* hack to let an user the time to cancel a download */
+ sleep(2);
+ }
+ free(destfile);
+ free(tempfile);
+ free(parsedcmd);
+
+ return ret;
+}
+
+
+int config_set_arch(const char *arch)
+{
+ if(strcmp(arch, "auto") == 0) {
+ struct utsname un;
+ uname(&un);
+ config->arch = strdup(un.machine);
+ } else {
+ config->arch = strdup(arch);
+ }
+ pm_printf(ALPM_LOG_DEBUG, "config: arch: %s\n", config->arch);
+ return 0;
+}
+
+/**
+ * Parse a signature verification level line.
+ * @param values the list of parsed option values
+ * @param storage location to store the derived signature level; any existing
+ * value here is used as a starting point
+ * @return 0 on success, 1 on any parsing error
+ */
+static int process_siglevel(alpm_list_t *values, alpm_siglevel_t *storage)
+{
+ alpm_siglevel_t level = *storage;
+ alpm_list_t *i;
+ int ret = 0;
+
+ /* Collapse the option names into a single bitmasked value */
+ for(i = values; i; i = alpm_list_next(i)) {
+ const char *original = i->data, *value;
+ int package = 0, database = 0;
+
+ if (strncmp(original, "Package", strlen("Package")) == 0) {
+ /* only packages are affected, don't flip flags for databases */
+ value = original + strlen("Package");
+ package = 1;
+ } else if (strncmp(original, "Database", strlen("Database")) == 0) {
+ /* only databases are affected, don't flip flags for packages */
+ value = original + strlen("Database");
+ database = 1;
+ } else {
+ /* no prefix, so anything found will affect both packages and dbs */
+ value = original;
+ package = database = 1;
+ }
+
+ /* now parse out and store actual flag if it is valid */
+ if(strcmp(value, "Never") == 0) {
+ if(package) {
+ level &= ~ALPM_SIG_PACKAGE;
+ }
+ if(database) {
+ level &= ~ALPM_SIG_DATABASE;
+ }
+ } else if(strcmp(value, "Optional") == 0) {
+ if(package) {
+ level |= ALPM_SIG_PACKAGE;
+ level |= ALPM_SIG_PACKAGE_OPTIONAL;
+ }
+ if(database) {
+ level |= ALPM_SIG_DATABASE;
+ level |= ALPM_SIG_DATABASE_OPTIONAL;
+ }
+ } else if(strcmp(value, "Required") == 0) {
+ if(package) {
+ level |= ALPM_SIG_PACKAGE;
+ level &= ~ALPM_SIG_PACKAGE_OPTIONAL;
+ }
+ if(database) {
+ level |= ALPM_SIG_DATABASE;
+ level &= ~ALPM_SIG_DATABASE_OPTIONAL;
+ }
+ } else if(strcmp(value, "TrustedOnly") == 0) {
+ if(package) {
+ level &= ~ALPM_SIG_PACKAGE_MARGINAL_OK;
+ level &= ~ALPM_SIG_PACKAGE_UNKNOWN_OK;
+ }
+ if(database) {
+ level &= ~ALPM_SIG_DATABASE_MARGINAL_OK;
+ level &= ~ALPM_SIG_DATABASE_UNKNOWN_OK;
+ }
+ } else if(strcmp(value, "TrustAll") == 0) {
+ if(package) {
+ level |= ALPM_SIG_PACKAGE_MARGINAL_OK;
+ level |= ALPM_SIG_PACKAGE_UNKNOWN_OK;
+ }
+ if(database) {
+ level |= ALPM_SIG_DATABASE_MARGINAL_OK;
+ level |= ALPM_SIG_DATABASE_UNKNOWN_OK;
+ }
+ } else {
+ pm_printf(ALPM_LOG_ERROR, _("invalid value for 'SigLevel' : '%s'\n"),
+ original);
+ ret = 1;
+ }
+ level &= ~ALPM_SIG_USE_DEFAULT;
+ }
+
+ if(!ret) {
+ *storage = level;
+ }
+ return ret;
+}
+
+static int process_cleanmethods(alpm_list_t *values) {
+ alpm_list_t *i;
+ for(i = values; i; i = alpm_list_next(i)) {
+ const char *value = i->data;
+ if(strcmp(value, "KeepInstalled") == 0) {
+ config->cleanmethod |= PM_CLEAN_KEEPINST;
+ } else if(strcmp(value, "KeepCurrent") == 0) {
+ config->cleanmethod |= PM_CLEAN_KEEPCUR;
+ } else {
+ pm_printf(ALPM_LOG_ERROR, _("invalid value for 'CleanMethod' : '%s'\n"),
+ value);
+ return 1;
+ }
+ }
+ return 0;
+}
+
+/** Add repeating options such as NoExtract, NoUpgrade, etc to libalpm
+ * settings. Refactored out of the parseconfig code since all of them did
+ * the exact same thing and duplicated code.
+ * @param ptr a pointer to the start of the multiple options
+ * @param option the string (friendly) name of the option, used for messages
+ * @param list the list to add the option to
+ */
+static void setrepeatingoption(char *ptr, const char *option,
+ alpm_list_t **list)
+{
+ char *q;
+
+ while((q = strchr(ptr, ' '))) {
+ *q = '\0';
+ *list = alpm_list_add(*list, strdup(ptr));
+ pm_printf(ALPM_LOG_DEBUG, "config: %s: %s\n", option, ptr);
+ ptr = q;
+ ptr++;
+ }
+ *list = alpm_list_add(*list, strdup(ptr));
+ pm_printf(ALPM_LOG_DEBUG, "config: %s: %s\n", option, ptr);
+}
+
+static int _parse_options(const char *key, char *value,
+ const char *file, int linenum)
+{
+ if(value == NULL) {
+ /* options without settings */
+ if(strcmp(key, "UseSyslog") == 0) {
+ config->usesyslog = 1;
+ pm_printf(ALPM_LOG_DEBUG, "config: usesyslog\n");
+ } else if(strcmp(key, "ILoveCandy") == 0) {
+ config->chomp = 1;
+ pm_printf(ALPM_LOG_DEBUG, "config: chomp\n");
+ } else if(strcmp(key, "VerbosePkgLists") == 0) {
+ config->verbosepkglists = 1;
+ pm_printf(ALPM_LOG_DEBUG, "config: verbosepkglists\n");
+ } else if(strcmp(key, "UseDelta") == 0) {
+ config->usedelta = 1;
+ pm_printf(ALPM_LOG_DEBUG, "config: usedelta\n");
+ } else if(strcmp(key, "TotalDownload") == 0) {
+ config->totaldownload = 1;
+ pm_printf(ALPM_LOG_DEBUG, "config: totaldownload\n");
+ } else if(strcmp(key, "CheckSpace") == 0) {
+ config->checkspace = 1;
+ } else {
+ pm_printf(ALPM_LOG_WARNING,
+ _("config file %s, line %d: directive '%s' in section '%s' not recognized.\n"),
+ file, linenum, key, "options");
+ }
+ } else {
+ /* options with settings */
+ if(strcmp(key, "NoUpgrade") == 0) {
+ setrepeatingoption(value, "NoUpgrade", &(config->noupgrade));
+ } else if(strcmp(key, "NoExtract") == 0) {
+ setrepeatingoption(value, "NoExtract", &(config->noextract));
+ } else if(strcmp(key, "IgnorePkg") == 0) {
+ setrepeatingoption(value, "IgnorePkg", &(config->ignorepkg));
+ } else if(strcmp(key, "IgnoreGroup") == 0) {
+ setrepeatingoption(value, "IgnoreGroup", &(config->ignoregrp));
+ } else if(strcmp(key, "HoldPkg") == 0) {
+ setrepeatingoption(value, "HoldPkg", &(config->holdpkg));
+ } else if(strcmp(key, "SyncFirst") == 0) {
+ setrepeatingoption(value, "SyncFirst", &(config->syncfirst));
+ } else if(strcmp(key, "CacheDir") == 0) {
+ setrepeatingoption(value, "CacheDir", &(config->cachedirs));
+ } else if(strcmp(key, "Architecture") == 0) {
+ if(!config->arch) {
+ config_set_arch(value);
+ }
+ } else if(strcmp(key, "DBPath") == 0) {
+ /* don't overwrite a path specified on the command line */
+ if(!config->dbpath) {
+ config->dbpath = strdup(value);
+ pm_printf(ALPM_LOG_DEBUG, "config: dbpath: %s\n", value);
+ }
+ } else if(strcmp(key, "RootDir") == 0) {
+ /* don't overwrite a path specified on the command line */
+ if(!config->rootdir) {
+ config->rootdir = strdup(value);
+ pm_printf(ALPM_LOG_DEBUG, "config: rootdir: %s\n", value);
+ }
+ } else if(strcmp(key, "GPGDir") == 0) {
+ if(!config->gpgdir) {
+ config->gpgdir = strdup(value);
+ pm_printf(ALPM_LOG_DEBUG, "config: gpgdir: %s\n", value);
+ }
+ } else if(strcmp(key, "LogFile") == 0) {
+ if(!config->logfile) {
+ config->logfile = strdup(value);
+ pm_printf(ALPM_LOG_DEBUG, "config: logfile: %s\n", value);
+ }
+ } else if(strcmp(key, "XferCommand") == 0) {
+ config->xfercommand = strdup(value);
+ pm_printf(ALPM_LOG_DEBUG, "config: xfercommand: %s\n", value);
+ } else if(strcmp(key, "CleanMethod") == 0) {
+ alpm_list_t *methods = NULL;
+ setrepeatingoption(value, "CleanMethod", &methods);
+ if(process_cleanmethods(methods)) {
+ FREELIST(methods);
+ return 1;
+ }
+ FREELIST(methods);
+ } else if(strcmp(key, "SigLevel") == 0) {
+ alpm_list_t *values = NULL;
+ setrepeatingoption(value, "SigLevel", &values);
+ if(process_siglevel(values, &(config->siglevel))) {
+ FREELIST(values);
+ return 1;
+ }
+ FREELIST(values);
+ } else {
+ pm_printf(ALPM_LOG_WARNING,
+ _("config file %s, line %d: directive '%s' in section '%s' not recognized.\n"),
+ file, linenum, key, "options");
+ }
+
+ }
+ return 0;
+}
+
+static int _add_mirror(alpm_db_t *db, char *value)
+{
+ const char *dbname = alpm_db_get_name(db);
+ /* let's attempt a replacement for the current repo */
+ char *temp = strreplace(value, "$repo", dbname);
+ /* let's attempt a replacement for the arch */
+ const char *arch = config->arch;
+ char *server;
+ if(arch) {
+ server = strreplace(temp, "$arch", arch);
+ free(temp);
+ } else {
+ if(strstr(temp, "$arch")) {
+ free(temp);
+ pm_printf(ALPM_LOG_ERROR, _("The mirror '%s' contains the $arch"
+ " variable, but no Architecture is defined.\n"), value);
+ return 1;
+ }
+ server = temp;
+ }
+
+ if(alpm_db_add_server(db, server) != 0) {
+ /* pm_errno is set by alpm_db_setserver */
+ pm_printf(ALPM_LOG_ERROR, _("could not add server URL to database '%s': %s (%s)\n"),
+ dbname, server, alpm_strerror(alpm_errno(config->handle)));
+ free(server);
+ return 1;
+ }
+
+ free(server);
+ return 0;
+}
+
+/** Sets up libalpm global stuff in one go. Called after the command line
+ * and inital config file parsing. Once this is complete, we can see if any
+ * paths were defined. If a rootdir was defined and nothing else, we want all
+ * of our paths to live under the rootdir that was specified. Safe to call
+ * multiple times (will only do anything the first time).
+ */
+static int setup_libalpm(void)
+{
+ int ret = 0;
+ enum _alpm_errno_t err;
+ alpm_handle_t *handle;
+
+ pm_printf(ALPM_LOG_DEBUG, "setup_libalpm called\n");
+
+ /* Configure root path first. If it is set and dbpath/logfile were not
+ * set, then set those as well to reside under the root. */
+ if(config->rootdir) {
+ char path[PATH_MAX];
+ if(!config->dbpath) {
+ snprintf(path, PATH_MAX, "%s/%s", config->rootdir, DBPATH + 1);
+ config->dbpath = strdup(path);
+ }
+ if(!config->logfile) {
+ snprintf(path, PATH_MAX, "%s/%s", config->rootdir, LOGFILE + 1);
+ config->logfile = strdup(path);
+ }
+ } else {
+ config->rootdir = strdup(ROOTDIR);
+ if(!config->dbpath) {
+ config->dbpath = strdup(DBPATH);
+ }
+ }
+
+ /* initialize library */
+ handle = alpm_initialize(config->rootdir, config->dbpath, &err);
+ if(!handle) {
+ pm_printf(ALPM_LOG_ERROR, _("failed to initialize alpm library (%s)\n"),
+ alpm_strerror(err));
+ if(err == ALPM_ERR_DB_VERSION) {
+ pm_printf(ALPM_LOG_ERROR, _(" try running pacman-db-upgrade\n"));
+ }
+ return -1;
+ }
+ config->handle = handle;
+
+ alpm_option_set_logcb(handle, cb_log);
+ alpm_option_set_dlcb(handle, cb_dl_progress);
+
+ config->logfile = config->logfile ? config->logfile : strdup(LOGFILE);
+ ret = alpm_option_set_logfile(handle, config->logfile);
+ if(ret != 0) {
+ pm_printf(ALPM_LOG_ERROR, _("problem setting logfile '%s' (%s)\n"),
+ config->logfile, alpm_strerror(alpm_errno(handle)));
+ return ret;
+ }
+
+ /* Set GnuPG's home directory. This is not relative to rootdir, even if
+ * rootdir is defined. Reasoning: gpgdir contains configuration data. */
+ config->gpgdir = config->gpgdir ? config->gpgdir : strdup(GPGDIR);
+ ret = alpm_option_set_gpgdir(handle, config->gpgdir);
+ if(ret != 0) {
+ pm_printf(ALPM_LOG_ERROR, _("problem setting gpgdir '%s' (%s)\n"),
+ config->gpgdir, alpm_strerror(alpm_errno(handle)));
+ return ret;
+ }
+
+ /* add a default cachedir if one wasn't specified */
+ if(config->cachedirs == NULL) {
+ alpm_option_add_cachedir(handle, CACHEDIR);
+ } else {
+ alpm_option_set_cachedirs(handle, config->cachedirs);
+ }
+
+ if(config->siglevel != ALPM_SIG_USE_DEFAULT) {
+ alpm_option_set_default_siglevel(handle, config->siglevel);
+ }
+
+ if(config->xfercommand) {
+ alpm_option_set_fetchcb(handle, download_with_xfercommand);
+ }
+
+ if(config->totaldownload) {
+ alpm_option_set_totaldlcb(handle, cb_dl_total);
+ }
+
+ alpm_option_set_arch(handle, config->arch);
+ alpm_option_set_checkspace(handle, config->checkspace);
+ alpm_option_set_usesyslog(handle, config->usesyslog);
+ alpm_option_set_usedelta(handle, config->usedelta);
+
+ alpm_option_set_ignorepkgs(handle, config->ignorepkg);
+ alpm_option_set_ignoregroups(handle, config->ignoregrp);
+ alpm_option_set_noupgrades(handle, config->noupgrade);
+ alpm_option_set_noextracts(handle, config->noextract);
+
+ return 0;
+}
+
+/**
+ * Allows parsing in advance of an entire config section before we start
+ * calling library methods.
+ */
+struct section_t {
+ /* useful for all sections */
+ char *name;
+ int is_options;
+ /* db section option gathering */
+ alpm_siglevel_t siglevel;
+ alpm_list_t *servers;
+};
+
+/**
+ * Wrap up a section once we have reached the end of it. This should be called
+ * when a subsequent section is encountered, or when we have reached the end of
+ * the root config file. Once called, all existing saved config pieces on the
+ * section struct are freed.
+ * @param section the current parsed and saved section data
+ * @param parse_options whether we are parsing options or repo data
+ * @return 0 on success, 1 on failure
+ */
+static int finish_section(struct section_t *section, int parse_options)
+{
+ int ret = 0;
+ alpm_list_t *i;
+ alpm_db_t *db;
+
+ pm_printf(ALPM_LOG_DEBUG, "config: finish section '%s'\n", section->name);
+
+ /* parsing options (or nothing)- nothing to do except free the pieces */
+ if(!section->name || parse_options || section->is_options) {
+ goto cleanup;
+ }
+
+ /* if we are not looking at options sections only, register a db */
+ db = alpm_db_register_sync(config->handle, section->name, section->siglevel);
+ if(db == NULL) {
+ pm_printf(ALPM_LOG_ERROR, _("could not register '%s' database (%s)\n"),
+ section->name, alpm_strerror(alpm_errno(config->handle)));
+ ret = 1;
+ goto cleanup;
+ }
+
+ for(i = section->servers; i; i = alpm_list_next(i)) {
+ char *value = alpm_list_getdata(i);
+ if(_add_mirror(db, value) != 0) {
+ pm_printf(ALPM_LOG_ERROR,
+ _("could not add mirror '%s' to database '%s' (%s)\n"),
+ value, section->name, alpm_strerror(alpm_errno(config->handle)));
+ ret = 1;
+ goto cleanup;
+ }
+ free(value);
+ }
+
+cleanup:
+ alpm_list_free(section->servers);
+ section->servers = NULL;
+ section->siglevel = ALPM_SIG_USE_DEFAULT;
+ free(section->name);
+ section->name = NULL;
+ return ret;
+}
+
+/** The "real" parseconfig. Each "Include" directive will recall this method so
+ * recursion and stack depth are limited to 10 levels. The publicly visible
+ * parseconfig calls this with a NULL section argument so we can recall from
+ * within ourself on an include.
+ * @param file path to the config file
+ * @param section the current active section
+ * @param parse_options whether to parse and call methods for the options
+ * section; if 0, parse and call methods for the repos sections
+ * @param depth the current recursion depth
+ * @return 0 on success, 1 on failure
+ */
+static int _parseconfig(const char *file, struct section_t *section,
+ int parse_options, int depth)
+{
+ FILE *fp = NULL;
+ char line[PATH_MAX];
+ int linenum = 0;
+ int ret = 0;
+ const int max_depth = 10;
+
+ if(depth >= max_depth) {
+ pm_printf(ALPM_LOG_ERROR,
+ _("config parsing exceeded max recursion depth of %d.\n"), max_depth);
+ ret = 1;
+ goto cleanup;
+ }
+
+ pm_printf(ALPM_LOG_DEBUG, "config: attempting to read file %s\n", file);
+ fp = fopen(file, "r");
+ if(fp == NULL) {
+ pm_printf(ALPM_LOG_ERROR, _("config file %s could not be read.\n"), file);
+ ret = 1;
+ goto cleanup;
+ }
+
+ while(fgets(line, PATH_MAX, fp)) {
+ char *key, *value, *ptr;
+ size_t line_len;
+
+ linenum++;
+ strtrim(line);
+ line_len = strlen(line);
+
+ /* ignore whole line and end of line comments */
+ if(line_len == 0 || line[0] == '#') {
+ continue;
+ }
+ if((ptr = strchr(line, '#'))) {
+ *ptr = '\0';
+ }
+
+ if(line[0] == '[' && line[line_len - 1] == ']') {
+ char *name;
+ /* only possibility here is a line == '[]' */
+ if(line_len <= 2) {
+ pm_printf(ALPM_LOG_ERROR, _("config file %s, line %d: bad section name.\n"),
+ file, linenum);
+ ret = 1;
+ goto cleanup;
+ }
+ /* new config section, skip the '[' */
+ name = strdup(line + 1);
+ name[line_len - 2] = '\0';
+ /* we're at a new section; perform any post-actions for the prior */
+ if(finish_section(section, parse_options)) {
+ ret = 1;
+ goto cleanup;
+ }
+ pm_printf(ALPM_LOG_DEBUG, "config: new section '%s'\n", name);
+ section->name = name;
+ section->is_options = (strcmp(name, "options") == 0);
+ continue;
+ }
+
+ /* directive */
+ /* strsep modifies the 'line' string: 'key \0 value' */
+ key = line;
+ value = line;
+ strsep(&value, "=");
+ strtrim(key);
+ strtrim(value);
+
+ if(key == NULL) {
+ pm_printf(ALPM_LOG_ERROR, _("config file %s, line %d: syntax error in config file- missing key.\n"),
+ file, linenum);
+ ret = 1;
+ goto cleanup;
+ }
+ /* For each directive, compare to the camelcase string. */
+ if(section->name == NULL) {
+ pm_printf(ALPM_LOG_ERROR, _("config file %s, line %d: All directives must belong to a section.\n"),
+ file, linenum);
+ ret = 1;
+ goto cleanup;
+ }
+ /* Include is allowed in both options and repo sections */
+ if(strcmp(key, "Include") == 0) {
+ glob_t globbuf;
+ int globret;
+ size_t gindex;
+
+ if(value == NULL) {
+ pm_printf(ALPM_LOG_ERROR, _("config file %s, line %d: directive '%s' needs a value\n"),
+ file, linenum, key);
+ ret = 1;
+ goto cleanup;
+ }
+ /* Ignore include failures... assume non-critical */
+ globret = glob(value, GLOB_NOCHECK, NULL, &globbuf);
+ switch(globret) {
+ case GLOB_NOSPACE:
+ pm_printf(ALPM_LOG_DEBUG,
+ "config file %s, line %d: include globbing out of space\n",
+ file, linenum);
+ break;
+ case GLOB_ABORTED:
+ pm_printf(ALPM_LOG_DEBUG,
+ "config file %s, line %d: include globbing read error for %s\n",
+ file, linenum, value);
+ break;
+ case GLOB_NOMATCH:
+ pm_printf(ALPM_LOG_DEBUG,
+ "config file %s, line %d: no include found for %s\n",
+ file, linenum, value);
+ break;
+ default:
+ for(gindex = 0; gindex < globbuf.gl_pathc; gindex++) {
+ pm_printf(ALPM_LOG_DEBUG, "config file %s, line %d: including %s\n",
+ file, linenum, globbuf.gl_pathv[gindex]);
+ _parseconfig(globbuf.gl_pathv[gindex], section, parse_options, depth + 1);
+ }
+ break;
+ }
+ globfree(&globbuf);
+ continue;
+ }
+ if(parse_options && section->is_options) {
+ /* we are either in options ... */
+ if((ret = _parse_options(key, value, file, linenum)) != 0) {
+ goto cleanup;
+ }
+ } else if (!parse_options && !section->is_options) {
+ /* ... or in a repo section */
+ if(strcmp(key, "Server") == 0) {
+ if(value == NULL) {
+ pm_printf(ALPM_LOG_ERROR, _("config file %s, line %d: directive '%s' needs a value\n"),
+ file, linenum, key);
+ ret = 1;
+ goto cleanup;
+ }
+ section->servers = alpm_list_add(section->servers, strdup(value));
+ } else if(strcmp(key, "SigLevel") == 0) {
+ alpm_list_t *values = NULL;
+ setrepeatingoption(value, "SigLevel", &values);
+ if(values) {
+ if(section->siglevel == ALPM_SIG_USE_DEFAULT) {
+ section->siglevel = config->siglevel;
+ }
+ if(process_siglevel(values, &(section->siglevel))) {
+ FREELIST(values);
+ ret = 1;
+ goto cleanup;
+ }
+ FREELIST(values);
+ }
+ } else {
+ pm_printf(ALPM_LOG_WARNING,
+ _("config file %s, line %d: directive '%s' in section '%s' not recognized.\n"),
+ file, linenum, key, section->name);
+ }
+ }
+ }
+
+ if(depth == 0) {
+ ret = finish_section(section, parse_options);
+ }
+
+cleanup:
+ if (fp) {
+ fclose(fp);
+ }
+ pm_printf(ALPM_LOG_DEBUG, "config: finished parsing %s\n", file);
+ return ret;
+}
+
+/** Parse a configuration file.
+ * @param file path to the config file
+ * @return 0 on success, non-zero on error
+ */
+int parseconfig(const char *file)
+{
+ int ret;
+ struct section_t section;
+ memset(&section, 0, sizeof(struct section_t));
+ section.siglevel = ALPM_SIG_USE_DEFAULT;
+ /* the config parse is a two-pass affair. We first parse the entire thing for
+ * the [options] section so we can get all default and path options set.
+ * Next, we go back and parse everything but [options]. */
+
+ /* call the real parseconfig function with a null section & db argument */
+ pm_printf(ALPM_LOG_DEBUG, "parseconfig: options pass\n");
+ if((ret = _parseconfig(file, &section, 1, 0))) {
+ return ret;
+ }
+ if((ret = setup_libalpm())) {
+ return ret;
+ }
+ /* second pass, repo section parsing */
+ pm_printf(ALPM_LOG_DEBUG, "parseconfig: repo pass\n");
+ return _parseconfig(file, &section, 0, 0);
}
/* vim: set ts=2 sw=2 noet: */
diff --git a/src/pacman/conf.h b/src/pacman/conf.h
index 92c379fc..bce42ab5 100644
--- a/src/pacman/conf.h
+++ b/src/pacman/conf.h
@@ -32,6 +32,10 @@ typedef struct __config_t {
unsigned short noprogressbar;
unsigned short logmask;
unsigned short print;
+ unsigned short checkspace;
+ unsigned short usesyslog;
+ unsigned short usedelta;
+ char *arch;
char *print_format;
/* unfortunately, we have to keep track of paths both here and in the library
* because they can come from both the command line or config file, and we
@@ -40,7 +44,8 @@ typedef struct __config_t {
char *rootdir;
char *dbpath;
char *logfile;
- /* TODO how to handle cachedirs? */
+ char *gpgdir;
+ alpm_list_t *cachedirs;
unsigned short op_q_isfile;
unsigned short op_q_info;
@@ -63,20 +68,31 @@ typedef struct __config_t {
unsigned short op_s_upgrade;
unsigned short group;
- pmtransflag_t flags;
unsigned short noask;
unsigned int ask;
+ alpm_transflag_t flags;
+ alpm_siglevel_t siglevel;
/* conf file options */
- unsigned short chomp; /* I Love Candy! */
- unsigned short showsize; /* show individual package sizes */
+ /* I Love Candy! */
+ unsigned short chomp;
+ /* format target pkg lists as table */
+ unsigned short verbosepkglists;
/* When downloading, display the amount downloaded, rate, ETA, and percent
* downloaded of the total download list */
unsigned short totaldownload;
- unsigned short cleanmethod; /* select -Sc behavior */
+ /* select -Sc behavior */
+ unsigned short cleanmethod;
alpm_list_t *holdpkg;
alpm_list_t *syncfirst;
+ alpm_list_t *ignorepkg;
+ alpm_list_t *ignoregrp;
+ alpm_list_t *noupgrade;
+ alpm_list_t *noextract;
char *xfercommand;
+
+ /* our connection to libalpm */
+ alpm_handle_t *handle;
} config_t;
/* Operations */
@@ -106,7 +122,8 @@ enum {
OP_NEEDED,
OP_ASEXPLICIT,
OP_ARCH,
- OP_PRINTFORMAT
+ OP_PRINTFORMAT,
+ OP_GPGDIR
};
/* clean method */
@@ -121,6 +138,8 @@ extern config_t *config;
config_t *config_new(void);
int config_free(config_t *oldconfig);
+int config_set_arch(const char *arch);
+int parseconfig(const char *file);
#endif /* _PM_CONF_H */
/* vim: set ts=2 sw=2 noet: */
diff --git a/src/pacman/database.c b/src/pacman/database.c
index 36433f33..3e4a672f 100644
--- a/src/pacman/database.c
+++ b/src/pacman/database.c
@@ -20,7 +20,6 @@
#include "config.h"
-#include <stdlib.h>
#include <stdio.h>
#include <alpm.h>
@@ -41,38 +40,39 @@
int pacman_database(alpm_list_t *targets)
{
alpm_list_t *i;
- pmdb_t *db_local;
+ alpm_db_t *db_local;
int retval = 0;
- pmpkgreason_t reason;
+ alpm_pkgreason_t reason;
if(targets == NULL) {
- pm_printf(PM_LOG_ERROR, _("no targets specified (use -h for help)\n"));
- return(1);
+ pm_printf(ALPM_LOG_ERROR, _("no targets specified (use -h for help)\n"));
+ return 1;
}
- if(config->flags & PM_TRANS_FLAG_ALLDEPS) { /* --asdeps */
- reason = PM_PKG_REASON_DEPEND;
- } else if(config->flags & PM_TRANS_FLAG_ALLEXPLICIT) { /* --asexplicit */
- reason = PM_PKG_REASON_EXPLICIT;
+ if(config->flags & ALPM_TRANS_FLAG_ALLDEPS) { /* --asdeps */
+ reason = ALPM_PKG_REASON_DEPEND;
+ } else if(config->flags & ALPM_TRANS_FLAG_ALLEXPLICIT) { /* --asexplicit */
+ reason = ALPM_PKG_REASON_EXPLICIT;
} else {
- pm_printf(PM_LOG_ERROR, _("no install reason specified (use -h for help)\n"));
- return(1);
+ pm_printf(ALPM_LOG_ERROR, _("no install reason specified (use -h for help)\n"));
+ return 1;
}
/* Lock database */
- if(trans_init(0) == -1) {
- return(1);
+ if(trans_init(0, 0) == -1) {
+ return 1;
}
- db_local = alpm_option_get_localdb();
+ db_local = alpm_option_get_localdb(config->handle);
for(i = targets; i; i = alpm_list_next(i)) {
char *pkgname = i->data;
- if(alpm_db_set_pkgreason(db_local, pkgname, reason) == -1) {
- pm_printf(PM_LOG_ERROR, _("could not set install reason for package %s (%s)\n"),
- pkgname, alpm_strerrorlast());
+ alpm_pkg_t *pkg = alpm_db_get_pkg(db_local, pkgname);
+ if(!pkg || alpm_db_set_pkgreason(config->handle, pkg, reason)) {
+ pm_printf(ALPM_LOG_ERROR, _("could not set install reason for package %s (%s)\n"),
+ pkgname, alpm_strerror(alpm_errno(config->handle)));
retval = 1;
} else {
- if(reason == PM_PKG_REASON_DEPEND) {
+ if(reason == ALPM_PKG_REASON_DEPEND) {
printf(_("%s: install reason has been set to 'installed as dependency'\n"), pkgname);
} else {
printf(_("%s: install reason has been set to 'explicitly installed'\n"), pkgname);
@@ -82,9 +82,9 @@ int pacman_database(alpm_list_t *targets)
/* Unlock database */
if(trans_release() == -1) {
- return(1);
+ return 1;
}
- return(retval);
+ return retval;
}
/* vim: set ts=2 sw=2 noet: */
diff --git a/src/pacman/deptest.c b/src/pacman/deptest.c
index 8895b487..0055c37e 100644
--- a/src/pacman/deptest.c
+++ b/src/pacman/deptest.c
@@ -20,23 +20,20 @@
#include "config.h"
-#include <stdlib.h>
#include <stdio.h>
-#include <string.h>
#include <alpm.h>
#include <alpm_list.h>
/* pacman */
#include "pacman.h"
-#include "util.h"
#include "conf.h"
int pacman_deptest(alpm_list_t *targets)
{
alpm_list_t *i;
alpm_list_t *deps = NULL;
- pmdb_t *localdb = alpm_option_get_localdb();
+ alpm_db_t *localdb = alpm_option_get_localdb(config->handle);
for(i = targets; i; i = alpm_list_next(i)) {
char *target = alpm_list_getdata(i);
@@ -47,7 +44,7 @@ int pacman_deptest(alpm_list_t *targets)
}
if(deps == NULL) {
- return(0);
+ return 0;
}
for(i = deps; i; i = alpm_list_next(i)) {
@@ -56,7 +53,7 @@ int pacman_deptest(alpm_list_t *targets)
printf("%s\n", dep);
}
alpm_list_free(deps);
- return(127);
+ return 127;
}
/* vim: set ts=2 sw=2 noet: */
diff --git a/src/pacman/package.c b/src/pacman/package.c
index 77a5ee72..45afded2 100644
--- a/src/pacman/package.c
+++ b/src/pacman/package.c
@@ -26,7 +26,6 @@
#include <unistd.h>
#include <limits.h>
#include <errno.h>
-#include <wchar.h>
#include <alpm.h>
#include <alpm_list.h>
@@ -34,23 +33,25 @@
/* pacman */
#include "package.h"
#include "util.h"
+#include "conf.h"
#define CLBUF_SIZE 4096
-/* Display the content of a package
- *
- * levels:
- * <-1 - sync package, extra information (required by) [-Sii]
- * -1 - sync package, normal level [-Si]
- * =0 - file query [-Qip]
- * 1 - localdb query, normal level [-Qi]
- * >1 - localdb query, extra information (backup files) [-Qii]
+/**
+ * Display the details of a package.
+ * Extra information entails 'required by' info for sync packages and backup
+ * files info for local packages.
+ * @param pkg package to display information for
+ * @param from the type of package we are dealing with
+ * @param extra should we show extra information
*/
-void dump_pkg_full(pmpkg_t *pkg, int level)
+void dump_pkg_full(alpm_pkg_t *pkg, enum pkg_from from, int extra)
{
const char *reason;
time_t bdate, idate;
char bdatestr[50] = "", idatestr[50] = "";
+ const char *label;
+ double size;
const alpm_list_t *i;
alpm_list_t *requiredby = NULL, *depstrings = NULL;
@@ -69,10 +70,10 @@ void dump_pkg_full(pmpkg_t *pkg, int level)
}
switch((long)alpm_pkg_get_reason(pkg)) {
- case PM_PKG_REASON_EXPLICIT:
+ case ALPM_PKG_REASON_EXPLICIT:
reason = _("Explicitly installed");
break;
- case PM_PKG_REASON_DEPEND:
+ case ALPM_PKG_REASON_DEPEND:
reason = _("Installed as a dependency for another package");
break;
default:
@@ -82,16 +83,20 @@ void dump_pkg_full(pmpkg_t *pkg, int level)
/* turn depends list into a text list */
for(i = alpm_pkg_get_depends(pkg); i; i = alpm_list_next(i)) {
- pmdepend_t *dep = (pmdepend_t*)alpm_list_getdata(i);
+ alpm_depend_t *dep = (alpm_depend_t *)alpm_list_getdata(i);
depstrings = alpm_list_add(depstrings, alpm_dep_compute_string(dep));
}
- if(level > 0 || level < -1) {
+ if(extra || from == PKG_FROM_LOCALDB) {
/* compute this here so we don't get a pause in the middle of output */
requiredby = alpm_pkg_compute_requiredby(pkg);
}
/* actual output */
+ if(from == PKG_FROM_SYNCDB) {
+ string_display(_("Repository :"),
+ alpm_db_get_name(alpm_pkg_get_db(pkg)));
+ }
string_display(_("Name :"), alpm_pkg_get_name(pkg));
string_display(_("Version :"), alpm_pkg_get_version(pkg));
string_display(_("URL :"), alpm_pkg_get_url(pkg));
@@ -100,42 +105,52 @@ void dump_pkg_full(pmpkg_t *pkg, int level)
list_display(_("Provides :"), alpm_pkg_get_provides(pkg));
list_display(_("Depends On :"), depstrings);
list_display_linebreak(_("Optional Deps :"), alpm_pkg_get_optdepends(pkg));
- if(level > 0 || level < -1) {
+ if(extra || from == PKG_FROM_LOCALDB) {
list_display(_("Required By :"), requiredby);
}
list_display(_("Conflicts With :"), alpm_pkg_get_conflicts(pkg));
list_display(_("Replaces :"), alpm_pkg_get_replaces(pkg));
- if(level < 0) {
- printf(_("Download Size : %6.2f K\n"),
- (double)alpm_pkg_get_size(pkg) / 1024.0);
- }
- if(level == 0) {
- printf(_("Compressed Size: %6.2f K\n"),
- (double)alpm_pkg_get_size(pkg) / 1024.0);
+
+ size = humanize_size(alpm_pkg_get_size(pkg), 'K', 1, &label);
+ if(from == PKG_FROM_SYNCDB) {
+ printf(_("Download Size : %6.2f %s\n"), size, label);
+ } else if(from == PKG_FROM_FILE) {
+ printf(_("Compressed Size: %6.2f %s\n"), size, label);
}
- printf(_("Installed Size : %6.2f K\n"),
- (double)alpm_pkg_get_isize(pkg) / 1024.0);
+ size = humanize_size(alpm_pkg_get_isize(pkg), 'K', 1, &label);
+ printf(_("Installed Size : %6.2f %s\n"), size, label);
+
string_display(_("Packager :"), alpm_pkg_get_packager(pkg));
string_display(_("Architecture :"), alpm_pkg_get_arch(pkg));
string_display(_("Build Date :"), bdatestr);
- if(level > 0) {
+ if(from == PKG_FROM_LOCALDB) {
string_display(_("Install Date :"), idatestr);
string_display(_("Install Reason :"), reason);
}
- if(level >= 0) {
+ if(from == PKG_FROM_FILE || from == PKG_FROM_LOCALDB) {
string_display(_("Install Script :"),
alpm_pkg_has_scriptlet(pkg) ? _("Yes") : _("No"));
}
- /* MD5 Sum for sync package */
- if(level < 0) {
+ if(from == PKG_FROM_SYNCDB) {
string_display(_("MD5 Sum :"), alpm_pkg_get_md5sum(pkg));
}
+ if(from == PKG_FROM_FILE) {
+ alpm_sigresult_t result;
+ int err = alpm_pkg_check_pgp_signature(pkg, &result);
+ if(err) {
+ string_display(_("Signatures :"),
+ alpm_strerror(alpm_errno(config->handle)));
+ } else {
+ signature_display(_("Signatures :"), &result);
+ }
+ alpm_sigresult_cleanup(&result);
+ }
string_display(_("Description :"), alpm_pkg_get_desc(pkg));
/* Print additional package info if info flag passed more than once */
- if(level > 1) {
+ if(from == PKG_FROM_LOCALDB && extra) {
dump_pkg_backups(pkg);
}
@@ -146,38 +161,26 @@ void dump_pkg_full(pmpkg_t *pkg, int level)
FREELIST(requiredby);
}
-/* Display the content of a sync package
- */
-void dump_pkg_sync(pmpkg_t *pkg, const char *treename, int level)
-{
- if(pkg == NULL) {
- return;
- }
- string_display(_("Repository :"), treename);
- /* invert the level since we are a sync package */
- dump_pkg_full(pkg, -level);
-}
-
static const char *get_backup_file_status(const char *root,
- const char *filename, const char *expected_md5)
+ const alpm_backup_t *backup)
{
char path[PATH_MAX];
- char *ret;
+ const char *ret;
- snprintf(path, PATH_MAX, "%s%s", root, filename);
+ snprintf(path, PATH_MAX, "%s%s", root, backup->name);
/* if we find the file, calculate checksums, otherwise it is missing */
if(access(path, R_OK) == 0) {
char *md5sum = alpm_compute_md5sum(path);
if(md5sum == NULL) {
- pm_fprintf(stderr, PM_LOG_ERROR,
+ pm_fprintf(stderr, ALPM_LOG_ERROR,
_("could not calculate checksums for %s\n"), path);
- return(NULL);
+ return NULL;
}
/* if checksums don't match, file has been modified */
- if (strcmp(md5sum, expected_md5) != 0) {
+ if(strcmp(md5sum, backup->hash) != 0) {
ret = "MODIFIED";
} else {
ret = "UNMODIFIED";
@@ -195,31 +198,26 @@ static const char *get_backup_file_status(const char *root,
ret = "UNKNOWN";
}
}
- return(ret);
+ return ret;
}
/* Display list of backup files and their modification states
*/
-void dump_pkg_backups(pmpkg_t *pkg)
+void dump_pkg_backups(alpm_pkg_t *pkg)
{
alpm_list_t *i;
- const char *root = alpm_option_get_root();
+ const char *root = alpm_option_get_root(config->handle);
printf(_("Backup Files:\n"));
if(alpm_pkg_get_backup(pkg)) {
/* package has backup files, so print them */
for(i = alpm_pkg_get_backup(pkg); i; i = alpm_list_next(i)) {
+ const alpm_backup_t *backup = alpm_list_getdata(i);
const char *value;
- char *str = strdup(alpm_list_getdata(i));
- char *ptr = strchr(str, '\t');
- if(ptr == NULL) {
- free(str);
+ if(!backup->hash) {
continue;
}
- *ptr = '\0';
- ptr++;
- value = get_backup_file_status(root, str, ptr);
- printf("%s\t%s%s\n", value, root, str);
- free(str);
+ value = get_backup_file_status(root, backup);
+ printf("%s\t%s%s\n", value, root, backup->name);
}
} else {
/* package had no backup files */
@@ -229,21 +227,22 @@ void dump_pkg_backups(pmpkg_t *pkg)
/* List all files contained in a package
*/
-void dump_pkg_files(pmpkg_t *pkg, int quiet)
+void dump_pkg_files(alpm_pkg_t *pkg, int quiet)
{
- const char *pkgname, *root, *filestr;
- alpm_list_t *i, *pkgfiles;
+ const char *pkgname, *root;
+ alpm_filelist_t *pkgfiles;
+ size_t i;
pkgname = alpm_pkg_get_name(pkg);
pkgfiles = alpm_pkg_get_files(pkg);
- root = alpm_option_get_root();
+ root = alpm_option_get_root(config->handle);
- for(i = pkgfiles; i; i = alpm_list_next(i)) {
- filestr = alpm_list_getdata(i);
- if(!quiet){
- fprintf(stdout, "%s %s%s\n", pkgname, root, filestr);
+ for(i = 0; i < pkgfiles->count; i++) {
+ const alpm_file_t *file = pkgfiles->files + i;
+ if(!quiet) {
+ fprintf(stdout, "%s %s%s\n", pkgname, root, file->name);
} else {
- fprintf(stdout, "%s%s\n", root, filestr);
+ fprintf(stdout, "%s%s\n", root, file->name);
}
}
@@ -252,12 +251,12 @@ void dump_pkg_files(pmpkg_t *pkg, int quiet)
/* Display the changelog of a package
*/
-void dump_pkg_changelog(pmpkg_t *pkg)
+void dump_pkg_changelog(alpm_pkg_t *pkg)
{
void *fp = NULL;
if((fp = alpm_pkg_changelog_open(pkg)) == NULL) {
- pm_fprintf(stderr, PM_LOG_ERROR, _("no changelog available for '%s'.\n"),
+ pm_fprintf(stderr, ALPM_LOG_ERROR, _("no changelog available for '%s'.\n"),
alpm_pkg_get_name(pkg));
return;
} else {
diff --git a/src/pacman/package.h b/src/pacman/package.h
index 26333c5a..6f71d20e 100644
--- a/src/pacman/package.h
+++ b/src/pacman/package.h
@@ -22,12 +22,18 @@
#include <alpm.h>
-void dump_pkg_full(pmpkg_t *pkg, int level);
-void dump_pkg_sync(pmpkg_t *pkg, const char *treename, int level);
+/* TODO it would be nice if we didn't duplicate a backend type */
+enum pkg_from {
+ PKG_FROM_FILE = 1,
+ PKG_FROM_LOCALDB,
+ PKG_FROM_SYNCDB
+};
-void dump_pkg_backups(pmpkg_t *pkg);
-void dump_pkg_files(pmpkg_t *pkg, int quiet);
-void dump_pkg_changelog(pmpkg_t *pkg);
+void dump_pkg_full(alpm_pkg_t *pkg, enum pkg_from from, int extra);
+
+void dump_pkg_backups(alpm_pkg_t *pkg);
+void dump_pkg_files(alpm_pkg_t *pkg, int quiet);
+void dump_pkg_changelog(alpm_pkg_t *pkg);
#endif /* _PM_PACKAGE_H */
diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c
index 347d8af9..21ccc966 100644
--- a/src/pacman/pacman.c
+++ b/src/pacman/pacman.c
@@ -36,12 +36,9 @@
#include <signal.h>
#include <unistd.h>
#include <sys/types.h>
-#include <sys/stat.h>
#include <sys/utsname.h> /* uname */
#include <locale.h> /* setlocale */
-#include <time.h> /* time_t */
#include <errno.h>
-#include <glob.h>
#if defined(PACMAN_DEBUG) && defined(HAVE_MCHECK_H)
#include <mcheck.h> /* debug tracing (mtrace) */
#endif
@@ -53,9 +50,7 @@
/* pacman */
#include "pacman.h"
#include "util.h"
-#include "callback.h"
#include "conf.h"
-#include "package.h"
/* list of targets specified on command line */
static alpm_list_t *pm_targets;
@@ -66,9 +61,9 @@ static int options_cmp(const void *p1, const void *p2)
const char *s1 = p1;
const char *s2 = p2;
- if(s1 == s2) return(0);
- if(!s1) return(-1);
- if(!s2) return(1);
+ if(s1 == s2) return 0;
+ if(!s1) return -1;
+ if(!s2) return 1;
/* First skip all spaces in both strings */
while(isspace((unsigned char)*s1)) {
s1++;
@@ -87,15 +82,15 @@ static int options_cmp(const void *p1, const void *p2)
s2++;
} else if(*s2 == '-') {
/* s1 short, s2 long */
- return(-1);
+ return -1;
} else if(*s1 == '-') {
/* s1 long, s2 short */
- return(1);
+ return 1;
}
/* two short -> strcmp */
}
- return(strcmp(s1, s2));
+ return strcmp(s1, s2);
}
/** Display usage/syntax for the specified operation.
@@ -170,7 +165,7 @@ static void usage(int op, const char * const myname)
addlist(_(" -w, --downloadonly download packages but do not install/upgrade anything\n"));
addlist(_(" -y, --refresh download fresh package databases from the server\n"));
addlist(_(" --needed don't reinstall up to date packages\n"));
- } else if (op == PM_OP_DATABASE) {
+ } else if(op == PM_OP_DATABASE) {
printf("%s: %s {-D --database} <%s> <%s>\n", str_usg, myname, str_opt, str_pkg);
printf("%s:\n", str_opt);
addlist(_(" --asdeps mark packages as non-explicitly installed\n"));
@@ -207,6 +202,7 @@ static void usage(int op, const char * const myname)
addlist(_(" --cachedir <dir> set an alternate package cache location\n"));
addlist(_(" --config <path> set an alternate configuration file\n"));
addlist(_(" --debug display debug messages\n"));
+ addlist(_(" --gpgdir <path> set an alternate home directory for GnuPG\n"));
addlist(_(" --logfile <path> set an alternate log file\n"));
addlist(_(" --noconfirm do not ask for any confirmation\n"));
}
@@ -239,7 +235,7 @@ static void version(void)
static void localize(void)
{
static int init = 0;
- if (!init) {
+ if(!init) {
setlocale(LC_ALL, "");
bindtextdomain(PACKAGE, LOCALEDIR);
textdomain(PACKAGE);
@@ -261,27 +257,14 @@ static void setuseragent(void)
setenv("HTTP_USER_AGENT", agent, 0);
}
-static void setarch(const char *arch)
-{
- if (strcmp(arch, "auto") == 0) {
- struct utsname un;
- uname(&un);
- pm_printf(PM_LOG_DEBUG, "config: Architecture: %s\n", un.machine);
- alpm_option_set_arch(un.machine);
- } else {
- pm_printf(PM_LOG_DEBUG, "config: Architecture: %s\n", arch);
- alpm_option_set_arch(arch);
- }
-}
-
/** Free the resources.
*
* @param ret the return value
*/
static void cleanup(int ret) {
/* free alpm library resources */
- if(alpm_release() == -1) {
- pm_printf(PM_LOG_ERROR, "%s\n", alpm_strerrorlast());
+ if(config->handle && alpm_release(config->handle) == -1) {
+ pm_printf(ALPM_LOG_ERROR, "error releasing alpm library\n");
}
/* free memory */
@@ -302,7 +285,7 @@ static ssize_t xwrite(int fd, const void *buf, size_t count)
do {
ret = write(fd, buf, count);
} while(ret == -1 && errno == EINTR);
- return(ret);
+ return ret;
}
/** Catches thrown signals. Performs necessary cleanup to ensure database is
@@ -321,98 +304,34 @@ static void handler(int signum)
xwrite(out, msg1, strlen(msg1));
xwrite(err, msg2, strlen(msg2));
exit(signum);
- } else if((signum == SIGINT)) {
+ } else if(signum == SIGINT) {
const char *msg = "\nInterrupt signal received\n";
xwrite(err, msg, strlen(msg));
- if(alpm_trans_interrupt() == 0) {
+ if(alpm_trans_interrupt(config->handle) == 0) {
/* a transaction is being interrupted, don't exit pacman yet. */
return;
}
/* no commiting transaction, we can release it now and then exit pacman */
- alpm_trans_release();
+ alpm_trans_release(config->handle);
/* output a newline to be sure we clear any line we may be on */
xwrite(out, "\n", 1);
}
- cleanup(signum);
-}
-
-/** Sets all libalpm required paths in one go. Called after the command line
- * and inital config file parsing. Once this is complete, we can see if any
- * paths were defined. If a rootdir was defined and nothing else, we want all
- * of our paths to live under the rootdir that was specified. Safe to call
- * multiple times (will only do anything the first time).
- */
-static void setlibpaths(void)
-{
- static int init = 0;
- if (!init) {
- int ret = 0;
-
- pm_printf(PM_LOG_DEBUG, "setlibpaths() called\n");
- /* Configure root path first. If it is set and dbpath/logfile were not
- * set, then set those as well to reside under the root. */
- if(config->rootdir) {
- char path[PATH_MAX];
- ret = alpm_option_set_root(config->rootdir);
- if(ret != 0) {
- pm_printf(PM_LOG_ERROR, _("problem setting rootdir '%s' (%s)\n"),
- config->rootdir, alpm_strerrorlast());
- cleanup(ret);
- }
- if(!config->dbpath) {
- /* omit leading slash from our static DBPATH, root handles it */
- snprintf(path, PATH_MAX, "%s%s", alpm_option_get_root(), DBPATH + 1);
- config->dbpath = strdup(path);
- }
- if(!config->logfile) {
- /* omit leading slash from our static LOGFILE path, root handles it */
- snprintf(path, PATH_MAX, "%s%s", alpm_option_get_root(), LOGFILE + 1);
- config->logfile = strdup(path);
- }
- }
- /* Set other paths if they were configured. Note that unless rootdir
- * was left undefined, these two paths (dbpath and logfile) will have
- * been set locally above, so the if cases below will now trigger. */
- if(config->dbpath) {
- ret = alpm_option_set_dbpath(config->dbpath);
- if(ret != 0) {
- pm_printf(PM_LOG_ERROR, _("problem setting dbpath '%s' (%s)\n"),
- config->dbpath, alpm_strerrorlast());
- cleanup(ret);
- }
- }
- if(config->logfile) {
- ret = alpm_option_set_logfile(config->logfile);
- if(ret != 0) {
- pm_printf(PM_LOG_ERROR, _("problem setting logfile '%s' (%s)\n"),
- config->logfile, alpm_strerrorlast());
- cleanup(ret);
- }
- }
-
- /* add a default cachedir if one wasn't specified */
- if(alpm_option_get_cachedirs() == NULL) {
- alpm_option_add_cachedir(CACHEDIR);
- }
- init = 1;
- }
+ cleanup(128 + signum);
}
-#define check_optarg() if(!optarg) { return(1); }
+#define check_optarg() if(!optarg) { return 1; }
-typedef void (*fn_add) (const char *s);
-
-static int parsearg_util_addlist(fn_add fn)
+static int parsearg_util_addlist(alpm_list_t **list)
{
- alpm_list_t *list = NULL, *item = NULL; /* lists for splitting strings */
+ alpm_list_t *split, *item;
check_optarg();
- list = strsplit(optarg, ',');
- for(item = list; item; item = alpm_list_next(item)) {
- fn((char *)alpm_list_getdata(item));
+ split = strsplit(optarg, ',');
+ for(item = split; item; item = alpm_list_next(item)) {
+ *list = alpm_list_add(*list, item->data);
}
- FREELIST(list);
- return(0);
+ alpm_list_free(split);
+ return 0;
}
/** Helper function for parsing operation from command-line arguments.
@@ -449,9 +368,9 @@ static int parsearg_op(int opt, int dryrun)
if(dryrun) break;
config->help = 1; break;
default:
- return(1);
+ return 1;
}
- return(0);
+ return 0;
}
/** Helper functions for parsing command-line arguments.
@@ -461,7 +380,10 @@ static int parsearg_op(int opt, int dryrun)
static int parsearg_global(int opt)
{
switch(opt) {
- case OP_ARCH: check_optarg(); setarch(optarg); break;
+ case OP_ARCH:
+ check_optarg();
+ config_set_arch(strdup(optarg));
+ break;
case OP_ASK:
check_optarg();
config->noask = 1;
@@ -469,11 +391,7 @@ static int parsearg_global(int opt)
break;
case OP_CACHEDIR:
check_optarg();
- if(alpm_option_add_cachedir(optarg) != 0) {
- pm_printf(PM_LOG_ERROR, _("problem adding cachedir '%s' (%s)\n"),
- optarg, alpm_strerrorlast());
- return(1);
- }
+ config->cachedirs = alpm_list_add(config->cachedirs, strdup(optarg));
break;
case OP_CONFIG:
check_optarg();
@@ -490,21 +408,24 @@ static int parsearg_global(int opt)
unsigned short debug = (unsigned short)atoi(optarg);
switch(debug) {
case 2:
- config->logmask |= PM_LOG_FUNCTION; /* fall through */
+ config->logmask |= ALPM_LOG_FUNCTION; /* fall through */
case 1:
- config->logmask |= PM_LOG_DEBUG;
+ config->logmask |= ALPM_LOG_DEBUG;
break;
default:
- pm_printf(PM_LOG_ERROR, _("'%s' is not a valid debug level\n"),
+ pm_printf(ALPM_LOG_ERROR, _("'%s' is not a valid debug level\n"),
optarg);
- return(1);
+ return 1;
}
} else {
- config->logmask |= PM_LOG_DEBUG;
+ config->logmask |= ALPM_LOG_DEBUG;
}
/* progress bars get wonky with debug on, shut them off */
config->noprogressbar = 1;
break;
+ case OP_GPGDIR:
+ config->gpgdir = strdup(optarg);
+ break;
case OP_LOGFILE:
check_optarg();
config->logfile = strndup(optarg, PATH_MAX);
@@ -516,19 +437,19 @@ static int parsearg_global(int opt)
break;
case 'r': check_optarg(); config->rootdir = strdup(optarg); break;
case 'v': (config->verbose)++; break;
- default: return(1);
+ default: return 1;
}
- return(0);
+ return 0;
}
static int parsearg_database(int opt)
{
switch(opt) {
- case OP_ASDEPS: config->flags |= PM_TRANS_FLAG_ALLDEPS; break;
- case OP_ASEXPLICIT: config->flags |= PM_TRANS_FLAG_ALLEXPLICIT; break;
- default: return(1);
+ case OP_ASDEPS: config->flags |= ALPM_TRANS_FLAG_ALLDEPS; break;
+ case OP_ASEXPLICIT: config->flags |= ALPM_TRANS_FLAG_ALLEXPLICIT; break;
+ default: return 1;
}
- return(0);
+ return 0;
}
static int parsearg_query(int opt)
@@ -548,9 +469,9 @@ static int parsearg_query(int opt)
case 's': config->op_q_search = 1; break;
case 't': config->op_q_unrequired = 1; break;
case 'u': config->op_q_upgrade = 1; break;
- default: return(1);
+ default: return 1;
}
- return(0);
+ return 0;
}
/* options common to -S -R -U */
@@ -558,71 +479,71 @@ static int parsearg_trans(int opt)
{
switch(opt) {
case 'd':
- if(config->flags & PM_TRANS_FLAG_NODEPVERSION) {
- config->flags |= PM_TRANS_FLAG_NODEPS;
+ if(config->flags & ALPM_TRANS_FLAG_NODEPVERSION) {
+ config->flags |= ALPM_TRANS_FLAG_NODEPS;
} else {
- config->flags |= PM_TRANS_FLAG_NODEPVERSION;
+ config->flags |= ALPM_TRANS_FLAG_NODEPVERSION;
}
break;
- case 'k': config->flags |= PM_TRANS_FLAG_DBONLY; break;
+ case 'k': config->flags |= ALPM_TRANS_FLAG_DBONLY; break;
case OP_NOPROGRESSBAR: config->noprogressbar = 1; break;
- case OP_NOSCRIPTLET: config->flags |= PM_TRANS_FLAG_NOSCRIPTLET; break;
+ case OP_NOSCRIPTLET: config->flags |= ALPM_TRANS_FLAG_NOSCRIPTLET; break;
case 'p': config->print = 1; break;
case OP_PRINTFORMAT:
check_optarg();
config->print_format = strdup(optarg);
break;
- default: return(1);
+ default: return 1;
}
- return(0);
+ return 0;
}
static int parsearg_remove(int opt)
{
- if (parsearg_trans(opt) == 0)
- return(0);
+ if(parsearg_trans(opt) == 0)
+ return 0;
switch(opt) {
- case 'c': config->flags |= PM_TRANS_FLAG_CASCADE; break;
- case 'n': config->flags |= PM_TRANS_FLAG_NOSAVE; break;
+ case 'c': config->flags |= ALPM_TRANS_FLAG_CASCADE; break;
+ case 'n': config->flags |= ALPM_TRANS_FLAG_NOSAVE; break;
case 's':
- if(config->flags & PM_TRANS_FLAG_RECURSE) {
- config->flags |= PM_TRANS_FLAG_RECURSEALL;
+ if(config->flags & ALPM_TRANS_FLAG_RECURSE) {
+ config->flags |= ALPM_TRANS_FLAG_RECURSEALL;
} else {
- config->flags |= PM_TRANS_FLAG_RECURSE;
+ config->flags |= ALPM_TRANS_FLAG_RECURSE;
}
break;
- case 'u': config->flags |= PM_TRANS_FLAG_UNNEEDED; break;
- default: return(1);
+ case 'u': config->flags |= ALPM_TRANS_FLAG_UNNEEDED; break;
+ default: return 1;
}
- return(0);
+ return 0;
}
/* options common to -S -U */
static int parsearg_upgrade(int opt)
{
- if (parsearg_trans(opt) == 0)
- return(0);
+ if(parsearg_trans(opt) == 0)
+ return 0;
switch(opt) {
- case 'f': config->flags |= PM_TRANS_FLAG_FORCE; break;
- case OP_ASDEPS: config->flags |= PM_TRANS_FLAG_ALLDEPS; break;
- case OP_ASEXPLICIT: config->flags |= PM_TRANS_FLAG_ALLEXPLICIT; break;
+ case 'f': config->flags |= ALPM_TRANS_FLAG_FORCE; break;
+ case OP_ASDEPS: config->flags |= ALPM_TRANS_FLAG_ALLDEPS; break;
+ case OP_ASEXPLICIT: config->flags |= ALPM_TRANS_FLAG_ALLEXPLICIT; break;
case OP_IGNORE:
- parsearg_util_addlist(alpm_option_add_ignorepkg);
+ parsearg_util_addlist(&(config->ignorepkg));
break;
case OP_IGNOREGROUP:
- parsearg_util_addlist(alpm_option_add_ignoregrp);
+ parsearg_util_addlist(&(config->ignoregrp));
break;
- default: return(1);
+ default: return 1;
}
- return(0);
+ return 0;
}
static int parsearg_sync(int opt)
{
- if (parsearg_upgrade(opt) == 0)
- return(0);
+ if(parsearg_upgrade(opt) == 0)
+ return 0;
switch(opt) {
- case OP_NEEDED: config->flags |= PM_TRANS_FLAG_NEEDED; break;
+ case OP_NEEDED: config->flags |= ALPM_TRANS_FLAG_NEEDED; break;
case 'c': (config->op_s_clean)++; break;
case 'g': (config->group)++; break;
case 'i': (config->op_s_info)++; break;
@@ -632,13 +553,13 @@ static int parsearg_sync(int opt)
case 'u': (config->op_s_upgrade)++; break;
case 'w':
config->op_s_downloadonly = 1;
- config->flags |= PM_TRANS_FLAG_DOWNLOADONLY;
- config->flags |= PM_TRANS_FLAG_NOCONFLICTS;
+ config->flags |= ALPM_TRANS_FLAG_DOWNLOADONLY;
+ config->flags |= ALPM_TRANS_FLAG_NOCONFLICTS;
break;
case 'y': (config->op_s_sync)++; break;
- default: return(1);
+ default: return 1;
}
- return(0);
+ return 0;
}
/** Parse command-line arguments for each operation.
@@ -652,7 +573,7 @@ static int parseargs(int argc, char *argv[])
int option_index = 0;
int result;
const char *optstring = "DQRSTUVb:cdefghiklmnopqr:stuvwy";
- static struct option opts[] =
+ static const struct option opts[] =
{
{"database", no_argument, 0, 'D'},
{"query", no_argument, 0, 'Q'},
@@ -706,6 +627,7 @@ static int parseargs(int argc, char *argv[])
{"asexplicit", no_argument, 0, OP_ASEXPLICIT},
{"arch", required_argument, 0, OP_ARCH},
{"print-format", required_argument, 0, OP_PRINTFORMAT},
+ {"gpgdir", required_argument, 0, OP_GPGDIR},
{0, 0, 0, 0}
};
@@ -717,22 +639,22 @@ static int parseargs(int argc, char *argv[])
continue;
} else if(opt == '?') {
/* unknown option, getopt printed an error */
- return(1);
+ return 1;
}
parsearg_op(opt, 0);
}
if(config->op == 0) {
- pm_printf(PM_LOG_ERROR, _("only one operation may be used at a time\n"));
- return(1);
+ pm_printf(ALPM_LOG_ERROR, _("only one operation may be used at a time\n"));
+ return 1;
}
if(config->help) {
usage(config->op, mbasename(argv[0]));
- return(2);
+ return 2;
}
if(config->version) {
version();
- return(2);
+ return 2;
}
/* parse all other options */
@@ -744,7 +666,7 @@ static int parseargs(int argc, char *argv[])
continue;
} else if(opt == '?') {
/* this should have failed during first pass already */
- return(1);
+ return 1;
} else if(parsearg_op(opt, 1) == 0) {
/* opt is an operation */
continue;
@@ -771,7 +693,7 @@ static int parseargs(int argc, char *argv[])
result = 1;
break;
}
- if (result == 0) {
+ if(result == 0) {
continue;
}
@@ -779,8 +701,8 @@ static int parseargs(int argc, char *argv[])
result = parsearg_global(opt);
if(result != 0) {
/* global option parsing failed, abort */
- pm_printf(PM_LOG_ERROR, _("invalid option\n"));
- return(result);
+ pm_printf(ALPM_LOG_ERROR, _("invalid option\n"));
+ return result;
}
}
@@ -790,469 +712,7 @@ static int parseargs(int argc, char *argv[])
optind++;
}
- return(0);
-}
-
-/* helper for being used with setrepeatingoption */
-static void option_add_holdpkg(const char *name) {
- config->holdpkg = alpm_list_add(config->holdpkg, strdup(name));
-}
-
-/* helper for being used with setrepeatingoption */
-static void option_add_syncfirst(const char *name) {
- config->syncfirst = alpm_list_add(config->syncfirst, strdup(name));
-}
-
-/* helper for being used with setrepeatingoption */
-static void option_add_cleanmethod(const char *value) {
- if (strcmp(value, "KeepInstalled") == 0) {
- config->cleanmethod |= PM_CLEAN_KEEPINST;
- } else if (strcmp(value, "KeepCurrent") == 0) {
- config->cleanmethod |= PM_CLEAN_KEEPCUR;
- } else {
- pm_printf(PM_LOG_ERROR, _("invalid value for 'CleanMethod' : '%s'\n"),
- value);
- }
-}
-
-/** Add repeating options such as NoExtract, NoUpgrade, etc to libalpm
- * settings. Refactored out of the parseconfig code since all of them did
- * the exact same thing and duplicated code.
- * @param ptr a pointer to the start of the multiple options
- * @param option the string (friendly) name of the option, used for messages
- * @param optionfunc a function pointer to an alpm_option_add_* function
- */
-static void setrepeatingoption(char *ptr, const char *option,
- void (*optionfunc)(const char*))
-{
- char *q;
-
- while((q = strchr(ptr, ' '))) {
- *q = '\0';
- (*optionfunc)(ptr);
- pm_printf(PM_LOG_DEBUG, "config: %s: %s\n", option, ptr);
- ptr = q;
- ptr++;
- }
- (*optionfunc)(ptr);
- pm_printf(PM_LOG_DEBUG, "config: %s: %s\n", option, ptr);
-}
-
-static char *get_filename(const char *url) {
- char *filename = strrchr(url, '/');
- if(filename != NULL) {
- filename++;
- }
- return(filename);
-}
-
-static char *get_destfile(const char *path, const char *filename) {
- char *destfile;
- /* len = localpath len + filename len + null */
- size_t len = strlen(path) + strlen(filename) + 1;
- destfile = calloc(len, sizeof(char));
- snprintf(destfile, len, "%s%s", path, filename);
-
- return(destfile);
-}
-
-static char *get_tempfile(const char *path, const char *filename) {
- char *tempfile;
- /* len = localpath len + filename len + '.part' len + null */
- size_t len = strlen(path) + strlen(filename) + 6;
- tempfile = calloc(len, sizeof(char));
- snprintf(tempfile, len, "%s%s.part", path, filename);
-
- return(tempfile);
-}
-
-/** External fetch callback */
-static int download_with_xfercommand(const char *url, const char *localpath,
- int force) {
- int ret = 0;
- int retval;
- int usepart = 0;
- struct stat st;
- char *parsedcmd,*tempcmd;
- char cwd[PATH_MAX];
- int restore_cwd = 0;
- char *destfile, *tempfile, *filename;
-
- if(!config->xfercommand) {
- return -1;
- }
-
- filename = get_filename(url);
- if(!filename) {
- return -1;
- }
- destfile = get_destfile(localpath, filename);
- tempfile = get_tempfile(localpath, filename);
-
- if(force && stat(tempfile, &st) == 0) {
- unlink(tempfile);
- }
- if(force && stat(destfile, &st) == 0) {
- unlink(destfile);
- }
-
- tempcmd = strdup(config->xfercommand);
- /* replace all occurrences of %o with fn.part */
- if(strstr(tempcmd, "%o")) {
- usepart = 1;
- parsedcmd = strreplace(tempcmd, "%o", tempfile);
- free(tempcmd);
- tempcmd = parsedcmd;
- }
- /* replace all occurrences of %u with the download URL */
- parsedcmd = strreplace(tempcmd, "%u", url);
- free(tempcmd);
-
- /* save the cwd so we can restore it later */
- if(getcwd(cwd, PATH_MAX) == NULL) {
- pm_printf(PM_LOG_ERROR, _("could not get current working directory\n"));
- } else {
- restore_cwd = 1;
- }
-
- /* cwd to the download directory */
- if(chdir(localpath)) {
- pm_printf(PM_LOG_WARNING, _("could not chdir to download directory %s\n"), localpath);
- ret = -1;
- goto cleanup;
- }
- /* execute the parsed command via /bin/sh -c */
- pm_printf(PM_LOG_DEBUG, "running command: %s\n", parsedcmd);
- retval = system(parsedcmd);
-
- if(retval == -1) {
- pm_printf(PM_LOG_WARNING, _("running XferCommand: fork failed!\n"));
- ret = -1;
- } else if(retval != 0) {
- /* download failed */
- pm_printf(PM_LOG_DEBUG, "XferCommand command returned non-zero status "
- "code (%d)\n", retval);
- ret = -1;
- } else {
- /* download was successful */
- if(usepart) {
- rename(tempfile, destfile);
- }
- ret = 0;
- }
-
-cleanup:
- /* restore the old cwd if we have it */
- if(restore_cwd && chdir(cwd) != 0) {
- pm_printf(PM_LOG_ERROR, _("could not change directory to %s (%s)\n"), cwd, strerror(errno));
- }
-
- if(ret == -1) {
- /* hack to let an user the time to cancel a download */
- sleep(2);
- }
- free(destfile);
- free(tempfile);
- free(parsedcmd);
-
- return(ret);
-}
-
-static int _parse_options(const char *key, char *value,
- const char *file, int linenum)
-{
- if(value == NULL) {
- /* options without settings */
- if(strcmp(key, "UseSyslog") == 0) {
- alpm_option_set_usesyslog(1);
- pm_printf(PM_LOG_DEBUG, "config: usesyslog\n");
- } else if(strcmp(key, "ILoveCandy") == 0) {
- config->chomp = 1;
- pm_printf(PM_LOG_DEBUG, "config: chomp\n");
- } else if(strcmp(key, "ShowSize") == 0) {
- config->showsize = 1;
- pm_printf(PM_LOG_DEBUG, "config: showsize\n");
- } else if(strcmp(key, "UseDelta") == 0) {
- alpm_option_set_usedelta(1);
- pm_printf(PM_LOG_DEBUG, "config: usedelta\n");
- } else if(strcmp(key, "TotalDownload") == 0) {
- config->totaldownload = 1;
- pm_printf(PM_LOG_DEBUG, "config: totaldownload\n");
- } else if(strcmp(key, "CheckSpace") == 0) {
- alpm_option_set_checkspace(1);
- } else {
- pm_printf(PM_LOG_WARNING,
- _("config file %s, line %d: directive '%s' in section '%s' not recognized.\n"),
- file, linenum, key, "options");
- }
- } else {
- /* options with settings */
- if(strcmp(key, "NoUpgrade") == 0) {
- setrepeatingoption(value, "NoUpgrade", alpm_option_add_noupgrade);
- } else if(strcmp(key, "NoExtract") == 0) {
- setrepeatingoption(value, "NoExtract", alpm_option_add_noextract);
- } else if(strcmp(key, "IgnorePkg") == 0) {
- setrepeatingoption(value, "IgnorePkg", alpm_option_add_ignorepkg);
- } else if(strcmp(key, "IgnoreGroup") == 0) {
- setrepeatingoption(value, "IgnoreGroup", alpm_option_add_ignoregrp);
- } else if(strcmp(key, "HoldPkg") == 0) {
- setrepeatingoption(value, "HoldPkg", option_add_holdpkg);
- } else if(strcmp(key, "SyncFirst") == 0) {
- setrepeatingoption(value, "SyncFirst", option_add_syncfirst);
- } else if(strcmp(key, "Architecture") == 0) {
- if(!alpm_option_get_arch()) {
- setarch(value);
- }
- } else if(strcmp(key, "DBPath") == 0) {
- /* don't overwrite a path specified on the command line */
- if(!config->dbpath) {
- config->dbpath = strdup(value);
- pm_printf(PM_LOG_DEBUG, "config: dbpath: %s\n", value);
- }
- } else if(strcmp(key, "CacheDir") == 0) {
- if(alpm_option_add_cachedir(value) != 0) {
- pm_printf(PM_LOG_ERROR, _("problem adding cachedir '%s' (%s)\n"),
- value, alpm_strerrorlast());
- return(1);
- }
- pm_printf(PM_LOG_DEBUG, "config: cachedir: %s\n", value);
- } else if(strcmp(key, "RootDir") == 0) {
- /* don't overwrite a path specified on the command line */
- if(!config->rootdir) {
- config->rootdir = strdup(value);
- pm_printf(PM_LOG_DEBUG, "config: rootdir: %s\n", value);
- }
- } else if (strcmp(key, "LogFile") == 0) {
- if(!config->logfile) {
- config->logfile = strdup(value);
- pm_printf(PM_LOG_DEBUG, "config: logfile: %s\n", value);
- }
- } else if (strcmp(key, "XferCommand") == 0) {
- config->xfercommand = strdup(value);
- alpm_option_set_fetchcb(download_with_xfercommand);
- pm_printf(PM_LOG_DEBUG, "config: xfercommand: %s\n", value);
- } else if (strcmp(key, "CleanMethod") == 0) {
- setrepeatingoption(value, "CleanMethod", option_add_cleanmethod);
- } else {
-
- pm_printf(PM_LOG_WARNING,
- _("config file %s, line %d: directive '%s' in section '%s' not recognized.\n"),
- file, linenum, key, "options");
- }
-
- }
- return(0);
-}
-
-static int _add_mirror(pmdb_t *db, char *value)
-{
- const char *dbname = alpm_db_get_name(db);
- /* let's attempt a replacement for the current repo */
- char *temp = strreplace(value, "$repo", dbname);
- /* let's attempt a replacement for the arch */
- const char *arch = alpm_option_get_arch();
- char *server;
- if(arch) {
- server = strreplace(temp, "$arch", arch);
- free(temp);
- } else {
- if(strstr(temp, "$arch")) {
- free(temp);
- pm_printf(PM_LOG_ERROR, _("The mirror '%s' contains the $arch"
- " variable, but no Architecture is defined.\n"), value);
- return(1);
- }
- server = temp;
- }
-
- if(alpm_db_setserver(db, server) != 0) {
- /* pm_errno is set by alpm_db_setserver */
- pm_printf(PM_LOG_ERROR, _("could not add server URL to database '%s': %s (%s)\n"),
- dbname, server, alpm_strerrorlast());
- free(server);
- return(1);
- }
-
- free(server);
- return(0);
-}
-
-/* The real parseconfig. Called with a null section argument by the publicly
- * visible parseconfig so we can recall from within ourself on an include */
-static int _parseconfig(const char *file, const char *givensection,
- pmdb_t * const givendb)
-{
- FILE *fp = NULL;
- char line[PATH_MAX+1];
- int linenum = 0;
- char *ptr, *section = NULL;
- pmdb_t *db = NULL;
- int ret = 0;
-
- pm_printf(PM_LOG_DEBUG, "config: attempting to read file %s\n", file);
- fp = fopen(file, "r");
- if(fp == NULL) {
- pm_printf(PM_LOG_ERROR, _("config file %s could not be read.\n"), file);
- return(1);
- }
-
- /* if we are passed a section, use it as our starting point */
- if(givensection != NULL) {
- section = strdup(givensection);
- }
- /* if we are passed a db, use it as our starting point */
- if(givendb != NULL) {
- db = givendb;
- }
-
- while(fgets(line, PATH_MAX, fp)) {
- linenum++;
- strtrim(line);
-
- /* ignore whole line and end of line comments */
- if(strlen(line) == 0 || line[0] == '#') {
- continue;
- }
- if((ptr = strchr(line, '#'))) {
- *ptr = '\0';
- }
-
- if(line[0] == '[' && line[strlen(line)-1] == ']') {
- /* new config section, skip the '[' */
- ptr = line;
- ptr++;
- if(section) {
- free(section);
- }
- section = strdup(ptr);
- section[strlen(section)-1] = '\0';
- pm_printf(PM_LOG_DEBUG, "config: new section '%s'\n", section);
- if(!strlen(section)) {
- pm_printf(PM_LOG_ERROR, _("config file %s, line %d: bad section name.\n"),
- file, linenum);
- ret = 1;
- goto cleanup;
- }
- /* if we are not looking at the options section, register a db */
- if(strcmp(section, "options") != 0) {
- db = alpm_db_register_sync(section);
- if(db == NULL) {
- pm_printf(PM_LOG_ERROR, _("could not register '%s' database (%s)\n"),
- section, alpm_strerrorlast());
- ret = 1;
- goto cleanup;
- }
- }
- continue;
- }
-
- /* directive */
- char *key, *value;
- /* strsep modifies the 'line' string: 'key \0 value' */
- key = line;
- value = line;
- strsep(&value, "=");
- strtrim(key);
- strtrim(value);
-
- if(key == NULL) {
- pm_printf(PM_LOG_ERROR, _("config file %s, line %d: syntax error in config file- missing key.\n"),
- file, linenum);
- ret = 1;
- goto cleanup;
- }
- /* For each directive, compare to the camelcase string. */
- if(section == NULL) {
- pm_printf(PM_LOG_ERROR, _("config file %s, line %d: All directives must belong to a section.\n"),
- file, linenum);
- ret = 1;
- goto cleanup;
- }
- /* Include is allowed in both options and repo sections */
- if(strcmp(key, "Include") == 0) {
- if(value == NULL) {
- pm_printf(PM_LOG_ERROR, _("config file %s, line %d: directive '%s' needs a value\n"),
- file, linenum, key);
- ret = 1;
- goto cleanup;
- }
- /* Ignore include failures... assume non-critical */
- int globret;
- glob_t globbuf;
- globret = glob(value, GLOB_NOCHECK, NULL, &globbuf);
- switch(globret) {
- case GLOB_NOSPACE:
- pm_printf(PM_LOG_DEBUG,
- "config file %s, line %d: include globbing out of space\n",
- file, linenum);
- break;
- case GLOB_ABORTED:
- pm_printf(PM_LOG_DEBUG,
- "config file %s, line %d: include globbing read error for %s\n",
- file, linenum, value);
- break;
- case GLOB_NOMATCH:
- pm_printf(PM_LOG_DEBUG,
- "config file %s, line %d: no include found for %s\n",
- file, linenum, value);
- break;
- default:
- for(size_t gindex = 0; gindex < globbuf.gl_pathc; gindex++) {
- pm_printf(PM_LOG_DEBUG, "config file %s, line %d: including %s\n",
- file, linenum, globbuf.gl_pathv[gindex]);
- _parseconfig(globbuf.gl_pathv[gindex], section, db);
- }
- break;
- }
- globfree(&globbuf);
- continue;
- }
- if(strcmp(section, "options") == 0) {
- /* we are either in options ... */
- if((ret = _parse_options(key, value, file, linenum)) != 0) {
- goto cleanup;
- }
- } else {
- /* ... or in a repo section */
- if(strcmp(key, "Server") == 0) {
- if(value == NULL) {
- pm_printf(PM_LOG_ERROR, _("config file %s, line %d: directive '%s' needs a value\n"),
- file, linenum, key);
- ret = 1;
- goto cleanup;
- }
- if(_add_mirror(db, value) != 0) {
- ret = 1;
- goto cleanup;
- }
- } else {
- pm_printf(PM_LOG_WARNING,
- _("config file %s, line %d: directive '%s' in section '%s' not recognized.\n"),
- file, linenum, key, section);
- }
- }
-
- }
-
-cleanup:
- fclose(fp);
- if(section){
- free(section);
- }
- /* call setlibpaths here to ensure we have called it at least once */
- setlibpaths();
- pm_printf(PM_LOG_DEBUG, "config: finished parsing %s\n", file);
- return(ret);
-}
-
-/** Parse a configuration file.
- * @param file path to the config file.
- * @return 0 on success, non-zero on error
- */
-static int parseconfig(const char *file)
-{
- /* call the real parseconfig function with a null section & db argument */
- return(_parseconfig(file, NULL, NULL));
+ return 0;
}
/** print commandline to logfile
@@ -1261,21 +721,24 @@ static void cl_to_log(int argc, char* argv[])
{
size_t size = 0;
int i;
- for(i = 0; i<argc; i++) {
+ for(i = 0; i < argc; i++) {
size += strlen(argv[i]) + 1;
}
+ if(!size) {
+ return;
+ }
char *cl_text = malloc(size);
if(!cl_text) {
return;
}
char *p = cl_text;
- for(i = 0; i<argc-1; i++) {
+ for(i = 0; i < argc - 1; i++) {
strcpy(p, argv[i]);
p += strlen(argv[i]);
*p++ = ' ';
}
strcpy(p, argv[i]);
- alpm_logaction("Running '%s'\n", cl_text);
+ alpm_logaction(config->handle, "Running '%s'\n", cl_text);
free(cl_text);
}
@@ -1333,21 +796,6 @@ int main(int argc, char *argv[])
config->noprogressbar = 1;
}
- /* initialize library */
- if(alpm_initialize() == -1) {
- pm_printf(PM_LOG_ERROR, _("failed to initialize alpm library (%s)\n"),
- alpm_strerrorlast());
- cleanup(EXIT_FAILURE);
- }
-
- /* Setup logging as soon as possible, to print out maximum debugging info */
- alpm_option_set_logcb(cb_log);
- alpm_option_set_dlcb(cb_dl_progress);
- /* define paths to reasonable defaults */
- alpm_option_set_root(ROOTDIR);
- alpm_option_set_dbpath(DBPATH);
- alpm_option_set_logfile(LOGFILE);
-
/* Priority of options:
* 1. command line
* 2. config file
@@ -1384,8 +832,8 @@ int main(int argc, char *argv[])
}
}
/* check for buffer overflow */
- if (i >= PATH_MAX) {
- pm_printf(PM_LOG_ERROR, _("buffer overflow detected in arg parsing\n"));
+ if(i >= PATH_MAX) {
+ pm_printf(ALPM_LOG_ERROR, _("buffer overflow detected in arg parsing\n"));
cleanup(EXIT_FAILURE);
}
@@ -1394,8 +842,8 @@ int main(int argc, char *argv[])
line[i] = '\0';
pm_targets = alpm_list_add(pm_targets, strdup(line));
}
- if (!freopen(ctermid(NULL), "r", stdin)) {
- pm_printf(PM_LOG_ERROR, _("failed to reopen stdin for reading: (%s)\n"),
+ if(!freopen(ctermid(NULL), "r", stdin)) {
+ pm_printf(ALPM_LOG_ERROR, _("failed to reopen stdin for reading: (%s)\n"),
strerror(errno));
}
}
@@ -1406,11 +854,6 @@ int main(int argc, char *argv[])
cleanup(ret);
}
- /* set TotalDownload callback if option enabled */
- if(config->totaldownload) {
- alpm_option_set_totaldlcb(cb_dl_total);
- }
-
/* noask is meant to be non-interactive */
if(config->noask) {
config->noconfirm = 1;
@@ -1419,32 +862,33 @@ int main(int argc, char *argv[])
/* set up the print operations */
if(config->print && !config->op_s_clean) {
config->noconfirm = 1;
- config->flags |= PM_TRANS_FLAG_NOCONFLICTS;
- config->flags |= PM_TRANS_FLAG_NOLOCK;
+ config->flags |= ALPM_TRANS_FLAG_NOCONFLICTS;
+ config->flags |= ALPM_TRANS_FLAG_NOLOCK;
/* Display only errors */
- config->logmask &= ~PM_LOG_WARNING;
+ config->logmask &= ~ALPM_LOG_WARNING;
}
#if defined(HAVE_GETEUID) && !defined(CYGWIN)
/* check if we have sufficient permission for the requested operation */
if(myuid > 0 && needs_root()) {
- pm_printf(PM_LOG_ERROR, _("you cannot perform this operation unless you are root.\n"));
+ pm_printf(ALPM_LOG_ERROR, _("you cannot perform this operation unless you are root.\n"));
cleanup(EXIT_FAILURE);
}
#endif
if(config->verbose > 0) {
alpm_list_t *i;
- printf("Root : %s\n", alpm_option_get_root());
+ printf("Root : %s\n", alpm_option_get_root(config->handle));
printf("Conf File : %s\n", config->configfile);
- printf("DB Path : %s\n", alpm_option_get_dbpath());
+ printf("DB Path : %s\n", alpm_option_get_dbpath(config->handle));
printf("Cache Dirs: ");
- for(i = alpm_option_get_cachedirs(); i; i = alpm_list_next(i)) {
- printf("%s ", (char*)alpm_list_getdata(i));
+ for(i = alpm_option_get_cachedirs(config->handle); i; i = alpm_list_next(i)) {
+ printf("%s ", (char *)alpm_list_getdata(i));
}
printf("\n");
- printf("Lock File : %s\n", alpm_option_get_lockfile());
- printf("Log File : %s\n", alpm_option_get_logfile());
+ printf("Lock File : %s\n", alpm_option_get_lockfile(config->handle));
+ printf("Log File : %s\n", alpm_option_get_logfile(config->handle));
+ printf("GPG Dir : %s\n", alpm_option_get_gpgdir(config->handle));
list_display("Targets :", pm_targets);
}
@@ -1474,13 +918,13 @@ int main(int argc, char *argv[])
ret = pacman_deptest(pm_targets);
break;
default:
- pm_printf(PM_LOG_ERROR, _("no operation specified (use -h for help)\n"));
+ pm_printf(ALPM_LOG_ERROR, _("no operation specified (use -h for help)\n"));
ret = EXIT_FAILURE;
}
cleanup(ret);
/* not reached */
- return(EXIT_SUCCESS);
+ return EXIT_SUCCESS;
}
/* vim: set ts=2 sw=2 noet: */
diff --git a/src/pacman/pacman.h b/src/pacman/pacman.h
index f5b972bb..8bb9cb27 100644
--- a/src/pacman/pacman.h
+++ b/src/pacman/pacman.h
@@ -24,18 +24,18 @@
/* database.c */
int pacman_database(alpm_list_t *targets);
+/* deptest.c */
+int pacman_deptest(alpm_list_t *targets);
/* query.c */
int pacman_query(alpm_list_t *targets);
/* remove.c */
int pacman_remove(alpm_list_t *targets);
/* sync.c */
int pacman_sync(alpm_list_t *targets);
+int sync_prepare_execute(void);
/* upgrade.c */
int pacman_upgrade(alpm_list_t *targets);
-/* deptest.c */
-int pacman_deptest(alpm_list_t *targets);
-
#endif /* _PM_PACMAN_H */
/* vim: set ts=2 sw=2 noet: */
diff --git a/src/pacman/po/.gitignore b/src/pacman/po/.gitignore
new file mode 100644
index 00000000..3be83ffa
--- /dev/null
+++ b/src/pacman/po/.gitignore
@@ -0,0 +1,4 @@
+*.gmo
+POTFILES
+stamp-po
+remove-potcdate.sed
diff --git a/src/pacman/po/LINGUAS b/src/pacman/po/LINGUAS
new file mode 100644
index 00000000..fac79ebd
--- /dev/null
+++ b/src/pacman/po/LINGUAS
@@ -0,0 +1,26 @@
+# Set of available languages.
+ca
+cs
+da
+de
+el
+en_GB
+es
+fi
+fr
+hu
+it
+kk
+nb
+pl
+pt
+pt_BR
+ro
+ru
+sk
+sr
+sr@latin
+sv
+tr
+uk
+zh_CN
diff --git a/src/pacman/po/Makefile.in.in b/src/pacman/po/Makefile.in.in
new file mode 100644
index 00000000..83d8838a
--- /dev/null
+++ b/src/pacman/po/Makefile.in.in
@@ -0,0 +1,444 @@
+# Makefile for PO directory in any package using GNU gettext.
+# Copyright (C) 1995-1997, 2000-2007, 2009-2010 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
+#
+# This file can be copied and used freely without restrictions. It can
+# be used in projects which are not available under the GNU General Public
+# License but which still want to provide support for the GNU gettext
+# functionality.
+# Please note that the actual code of GNU gettext is covered by the GNU
+# General Public License and is *not* in the public domain.
+#
+# Origin: gettext-0.18
+GETTEXT_MACRO_VERSION = 0.18
+
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+
+SHELL = /bin/sh
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+datarootdir = @datarootdir@
+datadir = @datadir@
+localedir = @localedir@
+gettextsrcdir = $(datadir)/gettext/po
+
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+
+# We use $(mkdir_p).
+# In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as
+# "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions,
+# @install_sh@ does not start with $(SHELL), so we add it.
+# In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined
+# either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake
+# versions, $(mkinstalldirs) and $(install_sh) are unused.
+mkinstalldirs = $(SHELL) @install_sh@ -d
+install_sh = $(SHELL) @install_sh@
+MKDIR_P = @MKDIR_P@
+mkdir_p = @mkdir_p@
+
+GMSGFMT_ = @GMSGFMT@
+GMSGFMT_no = @GMSGFMT@
+GMSGFMT_yes = @GMSGFMT_015@
+GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT))
+MSGFMT_ = @MSGFMT@
+MSGFMT_no = @MSGFMT@
+MSGFMT_yes = @MSGFMT_015@
+MSGFMT = $(MSGFMT_$(USE_MSGCTXT))
+XGETTEXT_ = @XGETTEXT@
+XGETTEXT_no = @XGETTEXT@
+XGETTEXT_yes = @XGETTEXT_015@
+XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT))
+MSGMERGE = msgmerge
+MSGMERGE_UPDATE = @MSGMERGE@ --update
+MSGINIT = msginit
+MSGCONV = msgconv
+MSGFILTER = msgfilter
+
+POFILES = @POFILES@
+GMOFILES = @GMOFILES@
+UPDATEPOFILES = @UPDATEPOFILES@
+DUMMYPOFILES = @DUMMYPOFILES@
+DISTFILES.common = Makefile.in.in remove-potcdate.sin \
+$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
+DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \
+$(POFILES) $(GMOFILES) \
+$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)
+
+POTFILES = \
+
+CATALOGS = @CATALOGS@
+
+# Makevars gets inserted here. (Don't remove this line!)
+
+.SUFFIXES:
+.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update
+
+.po.mo:
+ @echo "$(MSGFMT) -c -o $@ $<"; \
+ $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@
+
+.po.gmo:
+ @lang=`echo $* | sed -e 's,.*/,,'`; \
+ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+ echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.po"; \
+ cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo
+
+.sin.sed:
+ sed -e '/^#/d' $< > t-$@
+ mv t-$@ $@
+
+
+all: check-macro-version all-@USE_NLS@
+
+all-yes: stamp-po
+all-no:
+
+# Ensure that the gettext macros and this Makefile.in.in are in sync.
+check-macro-version:
+ @test "$(GETTEXT_MACRO_VERSION)" = "@GETTEXT_MACRO_VERSION@" \
+ || { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version @GETTEXT_MACRO_VERSION@" 1>&2; \
+ exit 1; \
+ }
+
+# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no
+# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because
+# we don't want to bother translators with empty POT files). We assume that
+# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty.
+# In this case, stamp-po is a nop (i.e. a phony target).
+
+# stamp-po is a timestamp denoting the last time at which the CATALOGS have
+# been loosely updated. Its purpose is that when a developer or translator
+# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS,
+# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent
+# invocations of "make" will do nothing. This timestamp would not be necessary
+# if updating the $(CATALOGS) would always touch them; however, the rule for
+# $(POFILES) has been designed to not touch files that don't need to be
+# changed.
+stamp-po: $(srcdir)/$(DOMAIN).pot
+ test ! -f $(srcdir)/$(DOMAIN).pot || \
+ test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES)
+ @test ! -f $(srcdir)/$(DOMAIN).pot || { \
+ echo "touch stamp-po" && \
+ echo timestamp > stamp-poT && \
+ mv stamp-poT stamp-po; \
+ }
+
+# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
+# otherwise packages like GCC can not be built if only parts of the source
+# have been downloaded.
+
+# This target rebuilds $(DOMAIN).pot; it is an expensive operation.
+# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed.
+$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
+ if LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null | grep -v 'libtool:' >/dev/null; then \
+ package_gnu='GNU '; \
+ else \
+ package_gnu=''; \
+ fi; \
+ if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \
+ msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \
+ else \
+ msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \
+ fi; \
+ case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \
+ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
+ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \
+ --files-from=$(srcdir)/POTFILES.in \
+ --copyright-holder='$(COPYRIGHT_HOLDER)' \
+ --msgid-bugs-address="$$msgid_bugs_address" \
+ ;; \
+ *) \
+ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
+ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \
+ --files-from=$(srcdir)/POTFILES.in \
+ --copyright-holder='$(COPYRIGHT_HOLDER)' \
+ --package-name="$${package_gnu}@PACKAGE@" \
+ --package-version='@VERSION@' \
+ --msgid-bugs-address="$$msgid_bugs_address" \
+ ;; \
+ esac
+ test ! -f $(DOMAIN).po || { \
+ if test -f $(srcdir)/$(DOMAIN).pot; then \
+ sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \
+ sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \
+ if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \
+ rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \
+ else \
+ rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \
+ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
+ fi; \
+ else \
+ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
+ fi; \
+ }
+
+# This rule has no dependencies: we don't need to update $(DOMAIN).pot at
+# every "make" invocation, only create it when it is missing.
+# Only "make $(DOMAIN).pot-update" or "make dist" will force an update.
+$(srcdir)/$(DOMAIN).pot:
+ $(MAKE) $(DOMAIN).pot-update
+
+# This target rebuilds a PO file if $(DOMAIN).pot has changed.
+# Note that a PO file is not touched if it doesn't need to be changed.
+$(POFILES): $(srcdir)/$(DOMAIN).pot
+ @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
+ if test -f "$(srcdir)/$${lang}.po"; then \
+ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+ echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot"; \
+ cd $(srcdir) \
+ && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \
+ $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \
+ *) \
+ $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot;; \
+ esac; \
+ }; \
+ else \
+ $(MAKE) $${lang}.po-create; \
+ fi
+
+
+install: install-exec install-data
+install-exec:
+install-data: install-data-@USE_NLS@
+ if test "$(PACKAGE)" = "gettext-tools"; then \
+ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \
+ for file in $(DISTFILES.common) Makevars.template; do \
+ $(INSTALL_DATA) $(srcdir)/$$file \
+ $(DESTDIR)$(gettextsrcdir)/$$file; \
+ done; \
+ for file in Makevars; do \
+ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
+ done; \
+ else \
+ : ; \
+ fi
+install-data-no: all
+install-data-yes: all
+ @catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+ dir=$(localedir)/$$lang/LC_MESSAGES; \
+ $(mkdir_p) $(DESTDIR)$$dir; \
+ if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \
+ $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \
+ echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \
+ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
+ if test -n "$$lc"; then \
+ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
+ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
+ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
+ for file in *; do \
+ if test -f $$file; then \
+ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
+ fi; \
+ done); \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+ else \
+ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
+ :; \
+ else \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ fi; \
+ fi; \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
+ ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
+ ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
+ cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
+ echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \
+ fi; \
+ done; \
+ done
+
+install-strip: install
+
+installdirs: installdirs-exec installdirs-data
+installdirs-exec:
+installdirs-data: installdirs-data-@USE_NLS@
+ if test "$(PACKAGE)" = "gettext-tools"; then \
+ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \
+ else \
+ : ; \
+ fi
+installdirs-data-no:
+installdirs-data-yes:
+ @catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+ dir=$(localedir)/$$lang/LC_MESSAGES; \
+ $(mkdir_p) $(DESTDIR)$$dir; \
+ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
+ if test -n "$$lc"; then \
+ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
+ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
+ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
+ for file in *; do \
+ if test -f $$file; then \
+ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
+ fi; \
+ done); \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+ else \
+ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
+ :; \
+ else \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ fi; \
+ fi; \
+ fi; \
+ done; \
+ done
+
+# Define this as empty until I found a useful application.
+installcheck:
+
+uninstall: uninstall-exec uninstall-data
+uninstall-exec:
+uninstall-data: uninstall-data-@USE_NLS@
+ if test "$(PACKAGE)" = "gettext-tools"; then \
+ for file in $(DISTFILES.common) Makevars.template; do \
+ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
+ done; \
+ else \
+ : ; \
+ fi
+uninstall-data-no:
+uninstall-data-yes:
+ catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+ for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
+ done; \
+ done
+
+check: all
+
+info dvi ps pdf html tags TAGS ctags CTAGS ID:
+
+mostlyclean:
+ rm -f remove-potcdate.sed
+ rm -f stamp-poT
+ rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po
+ rm -fr *.o
+
+clean: mostlyclean
+
+distclean: clean
+ rm -f Makefile Makefile.in POTFILES *.mo
+
+maintainer-clean: distclean
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+ rm -f stamp-po $(GMOFILES)
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+dist distdir:
+ $(MAKE) update-po
+ @$(MAKE) dist2
+# This is a separate target because 'update-po' must be executed before.
+dist2: stamp-po $(DISTFILES)
+ dists="$(DISTFILES)"; \
+ if test "$(PACKAGE)" = "gettext-tools"; then \
+ dists="$$dists Makevars.template"; \
+ fi; \
+ if test -f $(srcdir)/$(DOMAIN).pot; then \
+ dists="$$dists $(DOMAIN).pot stamp-po"; \
+ fi; \
+ if test -f $(srcdir)/ChangeLog; then \
+ dists="$$dists ChangeLog"; \
+ fi; \
+ for i in 0 1 2 3 4 5 6 7 8 9; do \
+ if test -f $(srcdir)/ChangeLog.$$i; then \
+ dists="$$dists ChangeLog.$$i"; \
+ fi; \
+ done; \
+ if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
+ for file in $$dists; do \
+ if test -f $$file; then \
+ cp -p $$file $(distdir) || exit 1; \
+ else \
+ cp -p $(srcdir)/$$file $(distdir) || exit 1; \
+ fi; \
+ done
+
+update-po: Makefile
+ $(MAKE) $(DOMAIN).pot-update
+ test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES)
+ $(MAKE) update-gmo
+
+# General rule for creating PO files.
+
+.nop.po-create:
+ @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \
+ echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \
+ exit 1
+
+# General rule for updating PO files.
+
+.nop.po-update:
+ @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \
+ if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \
+ tmpdir=`pwd`; \
+ echo "$$lang:"; \
+ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+ echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
+ cd $(srcdir); \
+ if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \
+ $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
+ *) \
+ $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
+ esac; \
+ }; then \
+ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
+ rm -f $$tmpdir/$$lang.new.po; \
+ else \
+ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
+ :; \
+ else \
+ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
+ exit 1; \
+ fi; \
+ fi; \
+ else \
+ echo "msgmerge for $$lang.po failed!" 1>&2; \
+ rm -f $$tmpdir/$$lang.new.po; \
+ fi
+
+$(DUMMYPOFILES):
+
+update-gmo: Makefile $(GMOFILES)
+ @:
+
+# Recreate Makefile by invoking config.status. Explicitly invoke the shell,
+# because execution permission bits may not work on the current file system.
+# Use @SHELL@, which is the shell determined by autoconf for the use by its
+# scripts, not $(SHELL) which is hardwired to /bin/sh and may be deficient.
+Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@
+ cd $(top_builddir) \
+ && @SHELL@ ./config.status $(subdir)/$@.in po-directories
+
+force:
+
+# Tell versions [3.59,3.63) of GNU make not to export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/src/pacman/po/Makevars b/src/pacman/po/Makevars
new file mode 100644
index 00000000..4e34304c
--- /dev/null
+++ b/src/pacman/po/Makevars
@@ -0,0 +1,26 @@
+# Makefile variables for PO directory in any package using GNU gettext.
+
+# Usually the message domain is the same as the package name.
+DOMAIN = pacman
+
+# These two variables depend on the location of this directory.
+subdir = src/pacman/po
+top_builddir = ../../../
+
+# These options get passed to xgettext.
+XGETTEXT_OPTIONS = --no-location \
+ --keyword=_ --flag=_:1:c-format \
+ --keyword=_n:1,2 --flag=_n:1:c-format --flag=_n:2:c-format
+
+# This is the copyright holder that gets inserted into the header of the
+# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
+# package.
+COPYRIGHT_HOLDER = Pacman Development Team <pacman-dev@archlinux.org>
+
+# This is the email address or URL to which the translators shall report
+# bugs in the untranslated strings.
+MSGID_BUGS_ADDRESS = http://bugs.archlinux.org/index.php?project=3
+
+# This is the list of locale categories, beyond LC_MESSAGES, for which the
+# message catalogs shall be used. It is usually empty.
+EXTRA_LOCALE_CATEGORIES =
diff --git a/src/pacman/po/POTFILES.in b/src/pacman/po/POTFILES.in
new file mode 100644
index 00000000..37abd6cc
--- /dev/null
+++ b/src/pacman/po/POTFILES.in
@@ -0,0 +1,14 @@
+# List of source files with translatable strings
+
+# pacman frontend source files
+src/pacman/callback.c
+src/pacman/conf.c
+src/pacman/database.c
+src/pacman/deptest.c
+src/pacman/package.c
+src/pacman/pacman.c
+src/pacman/query.c
+src/pacman/remove.c
+src/pacman/sync.c
+src/pacman/upgrade.c
+src/pacman/util.c
diff --git a/src/pacman/po/ca.po b/src/pacman/po/ca.po
new file mode 100644
index 00000000..f4b88cf9
--- /dev/null
+++ b/src/pacman/po/ca.po
@@ -0,0 +1,1154 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Pacman Development Team <pacman-dev@archlinux.org>
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Arch Linux Pacman package manager\n"
+"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
+"POT-Creation-Date: 2011-06-23 21:59-0500\n"
+"PO-Revision-Date: 2011-04-12 10:54+0000\n"
+"Last-Translator: hseara <hseara@gmail.com>\n"
+"Language-Team: Catalan <None>\n"
+"Language: ca\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"
+
+#, c-format
+msgid "checking dependencies...\n"
+msgstr "s'estan comprovant les dependències...\n"
+
+#, c-format
+msgid "checking for file conflicts...\n"
+msgstr "s'estan comprovant els conflictes amb fitxers...\n"
+
+#, c-format
+msgid "resolving dependencies...\n"
+msgstr "s'estan resolent les dependències...\n"
+
+#, c-format
+msgid "looking for inter-conflicts...\n"
+msgstr "s'estan cercant conflictes interns...\n"
+
+#, c-format
+msgid "installing %s...\n"
+msgstr "s'està instal·lant %s...\n"
+
+#, c-format
+msgid "removing %s...\n"
+msgstr "s'està eliminant %s...\n"
+
+#, c-format
+msgid "upgrading %s...\n"
+msgstr "s'està actualitzant %s...\n"
+
+#, c-format
+msgid "checking package integrity...\n"
+msgstr "s'està comprovant la integritat dels paquets...\n"
+
+#, c-format
+msgid "checking delta integrity...\n"
+msgstr "s'està comprovant la integritat delta...\n"
+
+#, c-format
+msgid "applying deltas...\n"
+msgstr "s'estan aplicant deltas...\n"
+
+#, c-format
+msgid "generating %s with %s... "
+msgstr "s'està generant %s amb %s... "
+
+#, c-format
+msgid "success!\n"
+msgstr "èxit!\n"
+
+#, c-format
+msgid "failed.\n"
+msgstr "fallat.\n"
+
+#, c-format
+msgid ":: Retrieving packages from %s...\n"
+msgstr ":: Recuperant paquets des de %s...\n"
+
+#, c-format
+msgid "checking available disk space...\n"
+msgstr "comprovant l'espai disponible al disc ...\n"
+
+#, c-format
+msgid ":: %s is in IgnorePkg/IgnoreGroup. Install anyway?"
+msgstr ":: %s és en IgnorePkg/IgnoreGroup. L'instal·lo igualment?"
+
+#, c-format
+msgid ":: Replace %s with %s/%s?"
+msgstr ":: Reemplaço %s amb %s/%s?"
+
+#, c-format
+msgid ":: %s and %s are in conflict. Remove %s?"
+msgstr ":: %s i %s tenen conflictes. Elimino %s?"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s). Remove %s?"
+msgstr ":: %s i %s tenen conflictes (%s). Elimino %s?"
+
+#, c-format
+msgid ""
+":: The following package cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgid_plural ""
+":: The following packages cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgstr[0] ""
+":: El següent paquet no es pot actualitzar a causa de dependències sense "
+"resolució:\n"
+msgstr[1] ""
+":: Els següents paquets no es pot actualitzar a causa de dependències sense "
+"resolució:\n"
+
+#, c-format
+msgid "Do you want to skip the above package for this upgrade?"
+msgid_plural "Do you want to skip the above packages for this upgrade?"
+msgstr[0] "Vols saltar aquest paquet en aquesta actualització?"
+msgstr[1] "Vols saltar aquests paquets en aquesta actualització?"
+
+#, c-format
+msgid ":: There are %d providers available for %s:\n"
+msgstr ":: Hi ha %d proveïdors disponibles per %s:\n"
+
+#, c-format
+msgid ":: %s-%s: local version is newer. Upgrade anyway?"
+msgstr ":: %s-%s: la versió local és més nova. Actualitzo igualment?"
+
+#, c-format
+msgid ":: File %s is corrupted. Do you want to delete it?"
+msgstr ":: El fitxer %s és corrupte. Voleu esborrar-lo?"
+
+#, c-format
+msgid "installing"
+msgstr "s'està instal.lant"
+
+#, c-format
+msgid "upgrading"
+msgstr "s'està actualitzant"
+
+#, c-format
+msgid "removing"
+msgstr "s'està eliminant"
+
+#, c-format
+msgid "checking for file conflicts"
+msgstr "s'estan comprovant els conflictes amb fitxers"
+
+#, c-format
+msgid "checking available disk space"
+msgstr "comprovant l'espai disponible al disc"
+
+#, c-format
+msgid "checking package integrity"
+msgstr "comprovant la integritat del paquet"
+
+#, c-format
+msgid "downloading %s...\n"
+msgstr "s'està baixant %s...\n"
+
+#, c-format
+msgid "malloc failure: could not allocate %zd bytes\n"
+msgstr "fallada d'assignació de memòria: no es poden assignar %zd bytes\n"
+
+#, c-format
+msgid "could not get current working directory\n"
+msgstr "no s'ha pogut obtenir l'actual directori de treball\n"
+
+#, c-format
+msgid "could not chdir to download directory %s\n"
+msgstr "no es pot canviar al directori de baixades %s\n"
+
+#, c-format
+msgid "running XferCommand: fork failed!\n"
+msgstr "execució XferCommand: ha fallat la bifurcació!\n"
+
+#, c-format
+msgid "could not change directory to %s (%s)\n"
+msgstr "no s'ha pogut canviar el directori a %s (%s)\n"
+
+#, c-format
+msgid "invalid value for 'CleanMethod' : '%s'\n"
+msgstr "valor invàlid per «CleanMethod» : «%s»\n"
+
+#, c-format
+msgid ""
+"config file %s, line %d: directive '%s' in section '%s' not recognized.\n"
+msgstr ""
+"fitxer de configuració %s, línia %d: directiva '%s' en la secció '%s' no "
+"reconeguda.\n"
+
+#, fuzzy, c-format
+msgid "config file %s, line %d: directive '%s' has invalid value '%s'\n"
+msgstr ""
+"fitxer de configuració %s, línia %d: directiva '%s' necessita un valor\n"
+
+#, c-format
+msgid ""
+"The mirror '%s' contains the $arch variable, but no Architecture is "
+"defined.\n"
+msgstr ""
+"El mirall «%s» conté la variable $arch, però no s'ha definit cap "
+"arquitectura.\n"
+
+#, c-format
+msgid "could not add server URL to database '%s': %s (%s)\n"
+msgstr ""
+"no es pot afegir l'URL del servidor a la base de dades «%s» : %s (%s)\n"
+
+#, c-format
+msgid "failed to initialize alpm library (%s)\n"
+msgstr "ha fallat en iniciar la llibreria alpm (%s)\n"
+
+#, c-format
+msgid "problem setting logfile '%s' (%s)\n"
+msgstr "problema en establir el fitxer de registre «%s» (%s)\n"
+
+#, fuzzy, c-format
+msgid "problem setting gpgdir '%s' (%s)\n"
+msgstr "problema en establir el directori arrel «%s» (%s)\n"
+
+#, c-format
+msgid "could not register '%s' database (%s)\n"
+msgstr "no es pot registrar «%s» base de dades (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not set verify option for database '%s' (%s)\n"
+msgstr ""
+"no es pot afegir l'URL del servidor a la base de dades «%s» : %s (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not add mirror '%s' to database '%s' (%s)\n"
+msgstr ""
+"no es pot afegir l'URL del servidor a la base de dades «%s» : %s (%s)\n"
+
+#, c-format
+msgid "config parsing exceeded max recursion depth of %d.\n"
+msgstr ""
+
+#, c-format
+msgid "config file %s could not be read.\n"
+msgstr "no es pot llegir el fitxer de configuració %s.\n"
+
+#, c-format
+msgid "config file %s, line %d: bad section name.\n"
+msgstr "fitxer de configuració %s, línia %d: nom de secció incorrecte.\n"
+
+#, c-format
+msgid "config file %s, line %d: syntax error in config file- missing key.\n"
+msgstr ""
+"fitxer de configuració %s, línia %d: error de sintaxi en el fitxer de "
+"configuració- falta una clau.\n"
+
+#, c-format
+msgid "config file %s, line %d: All directives must belong to a section.\n"
+msgstr ""
+"fitxer de configuració %s, línia %d: totes les directives han de pertànyer a "
+"una secció.\n"
+
+#, c-format
+msgid "config file %s, line %d: directive '%s' needs a value\n"
+msgstr ""
+"fitxer de configuració %s, línia %d: directiva '%s' necessita un valor\n"
+
+#, c-format
+msgid "no targets specified (use -h for help)\n"
+msgstr "no s'ha especificat cap objectiu (useu -h per ajuda)\n"
+
+#, c-format
+msgid "no install reason specified (use -h for help)\n"
+msgstr "cap motiu d'instal·lació especificat (empra -h per ajuda)\n"
+
+#, c-format
+msgid "could not set install reason for package %s (%s)\n"
+msgstr "no s'ha pogut establir el motiu d'instal·lació del paquet %s (%s)\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'installed as dependency'\n"
+msgstr ""
+"%s: el motiu d'instal·lació s'ha fixat a \"instal.lat com a dependència\"\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'explicitly installed'\n"
+msgstr ""
+"%s: el motiu d'instal·lació s'ha fixat a ' instal·lat explicitament \"\n"
+
+#, c-format
+msgid "Explicitly installed"
+msgstr "Instal·lat explícitament"
+
+#, c-format
+msgid "Installed as a dependency for another package"
+msgstr "Instal·lat com a dependència d'una altre paquet"
+
+#, c-format
+msgid "Unknown"
+msgstr "Desconegut"
+
+#, c-format
+msgid "Repository :"
+msgstr "Repositori :"
+
+#, c-format
+msgid "Name :"
+msgstr "Nom :"
+
+#, c-format
+msgid "Version :"
+msgstr "Versió :"
+
+#, c-format
+msgid "URL :"
+msgstr "URL :"
+
+#, c-format
+msgid "Licenses :"
+msgstr "Llicències :"
+
+#, c-format
+msgid "Groups :"
+msgstr "Grups :"
+
+#, c-format
+msgid "Provides :"
+msgstr "Proporciona :"
+
+#, c-format
+msgid "Depends On :"
+msgstr "Depen de :"
+
+#, c-format
+msgid "Optional Deps :"
+msgstr "Dep opcionals :"
+
+#, c-format
+msgid "Required By :"
+msgstr "Requerit per :"
+
+#, c-format
+msgid "Conflicts With :"
+msgstr "Conflictes amb :"
+
+#, c-format
+msgid "Replaces :"
+msgstr "Substitueix :"
+
+#, fuzzy, c-format
+msgid "Download Size : %6.2f %s\n"
+msgstr "Mida de la baixada: %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Compressed Size: %6.2f %s\n"
+msgstr "Mida comprimida: %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Installed Size : %6.2f %s\n"
+msgstr "Mida instal. : %6.2f K\n"
+
+#, c-format
+msgid "Packager :"
+msgstr "Empaquetador :"
+
+#, c-format
+msgid "Architecture :"
+msgstr "Arquitectura :"
+
+#, c-format
+msgid "Build Date :"
+msgstr "Data de constr.:"
+
+#, c-format
+msgid "Install Date :"
+msgstr "Data instal. :"
+
+#, c-format
+msgid "Install Reason :"
+msgstr "Raó instal. :"
+
+#, c-format
+msgid "Install Script :"
+msgstr "Script instal. :"
+
+#, c-format
+msgid "Yes"
+msgstr "Sí"
+
+#, c-format
+msgid "No"
+msgstr "No"
+
+#, c-format
+msgid "MD5 Sum :"
+msgstr "Suma MS5 :"
+
+#, c-format
+msgid "Description :"
+msgstr "Descripció :"
+
+#, c-format
+msgid "could not calculate checksums for %s\n"
+msgstr "No es poden calcular les sumes de comprovació per %s\n"
+
+#, c-format
+msgid "Backup Files:\n"
+msgstr "Còpia de seguretat dels fitxers:\n"
+
+#, c-format
+msgid "(none)\n"
+msgstr "(cap)\n"
+
+#, c-format
+msgid "no changelog available for '%s'.\n"
+msgstr "no hi ha registre de canvis disponible per «%s».\n"
+
+#, c-format
+msgid "options"
+msgstr "opcions"
+
+#, c-format
+msgid "file(s)"
+msgstr "fitxer(s)"
+
+#, c-format
+msgid "package(s)"
+msgstr "paquet(s)"
+
+#, c-format
+msgid "usage"
+msgstr "sintaxi"
+
+#, c-format
+msgid "operation"
+msgstr "operació"
+
+#, c-format
+msgid "operations:\n"
+msgstr "operacions:\n"
+
+#, c-format
+msgid ""
+"\n"
+"use '%s {-h --help}' with an operation for available options\n"
+msgstr ""
+"\n"
+"useu '%s {-h --help}' amb una operació per les opcions disponibles\n"
+
+#, c-format
+msgid ""
+" -c, --cascade remove packages and all packages that depend on them\n"
+msgstr ""
+" -c, --cascade elimina paquets i tots els paques que depenen d'ells\n"
+
+#, c-format
+msgid " -n, --nosave remove configuration files\n"
+msgstr " -n, --nosave esborra arxius de configuració\n"
+
+#, c-format
+msgid ""
+" -s, --recursive remove unnecessary dependencies\n"
+" (-ss includes explicitly installed dependencies)\n"
+msgstr ""
+" -s, --recursive esborra dependències innecessàries\n"
+" (-ss inclou dependències installades explícitament)\n"
+
+#, c-format
+msgid " -u, --unneeded remove unneeded packages\n"
+msgstr " -u, --unneeded esborra paquets innecessaris\n"
+
+#, c-format
+msgid " -c, --changelog view the changelog of a package\n"
+msgstr " -c, --changelog mostra el registre de canvis d'un paquet\n"
+
+#, c-format
+msgid ""
+" -d, --deps list packages installed as dependencies [filter]\n"
+msgstr ""
+" -d, --deps llista els paquets instal·lats com a dependències "
+"[filtre]\n"
+
+#, c-format
+msgid " -e, --explicit list packages explicitly installed [filter]\n"
+msgstr ""
+" -e, --explicit llista els paquets instal·lats explícitament "
+"[filtre]\n"
+
+#, c-format
+msgid " -g, --groups view all members of a package group\n"
+msgstr " -g, --groups mostra tots els membre d'un grup de paquets\n"
+
+#, c-format
+msgid ""
+" -i, --info view package information (-ii for backup files)\n"
+msgstr ""
+" -i, --info mostra informació dels paquets (-ii per fitxers de "
+"còpia de seguretat)\n"
+
+#, c-format
+msgid ""
+" -k, --check check that the files owned by the package(s) are "
+"present\n"
+msgstr ""
+" -k, --check comprova que els fitxers que pertanyen als paquets "
+"són presents\n"
+
+#, c-format
+msgid " -l, --list list the contents of the queried package\n"
+msgstr " -l, --list llista el contingut del paquet consultat\n"
+
+#, c-format
+msgid ""
+" -m, --foreign list installed packages not found in sync db(s) "
+"[filter]\n"
+msgstr ""
+" -m, --foreign llista els paquets instal·lats que no es troben en "
+"les bd sinc. [filtre]\n"
+
+#, c-format
+msgid " -o, --owns <file> query the package that owns <file>\n"
+msgstr " -o, --own <fitxer> consulta el paquet al que pertany <fitxer>\n"
+
+#, c-format
+msgid " -p, --file <package> query a package file instead of the database\n"
+msgstr ""
+" -p, --file <paquet> consulta un fitxer de paquet enlloc de la base de "
+"dades\n"
+
+#, c-format
+msgid " -q, --quiet show less information for query and search\n"
+msgstr ""
+" -q, --quiet mostra menys informació per consultes i cerques\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search locally-installed packages for matching "
+"strings\n"
+msgstr ""
+" -s, --search <exreg> cerca cadenes coincidents en paquets instal·lats "
+"localment\n"
+
+#, c-format
+msgid ""
+" -t, --unrequired list packages not required by any package [filter]\n"
+msgstr ""
+" -t, --unrequired llista els paquets no requerits per cap paquet "
+"[filtre]\n"
+
+#, c-format
+msgid " -u, --upgrades list outdated packages [filter]\n"
+msgstr " -u, --upgrades llista els paquets obsolets [filtre]\n"
+
+#, c-format
+msgid ""
+" -c, --clean remove old packages from cache directory (-cc for "
+"all)\n"
+msgstr ""
+" -c, --clean elimina paquets antics del directori de memòria cau (-"
+"cc per tots)\n"
+
+#, c-format
+msgid " -i, --info view package information\n"
+msgstr " -i, --info mostra informació del paquet\n"
+
+#, c-format
+msgid " -l, --list <repo> view a list of packages in a repo\n"
+msgstr ""
+" -l, --list <repo> mostra una llista dels paquets en un repositori\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search remote repositories for matching strings\n"
+msgstr ""
+" -s, --search <exreg> cerca cadenes coincidents en repositoris remots\n"
+
+#, c-format
+msgid ""
+" -u, --sysupgrade upgrade installed packages (-uu allows downgrade)\n"
+msgstr ""
+" -u, --sysupgrade actualitza els paquets instal·lats (-uu permet la "
+"desactualització)\n"
+
+#, c-format
+msgid ""
+" -w, --downloadonly download packages but do not install/upgrade "
+"anything\n"
+msgstr ""
+" -w, --downloadonly baixa paquets però no instal·la/actualitza res\n"
+
+#, c-format
+msgid ""
+" -y, --refresh download fresh package databases from the server\n"
+msgstr ""
+" -y, --refresh baixa bases de dades fresques des del servidor\n"
+
+#, c-format
+msgid " --needed don't reinstall up to date packages\n"
+msgstr " --needed no reinstal·la paquets al dia\n"
+
+#, c-format
+msgid " --asdeps mark packages as non-explicitly installed\n"
+msgstr ""
+" --asdeps marca els paquets com a no instal·lats explícitament\n"
+
+#, c-format
+msgid " --asexplicit mark packages as explicitly installed\n"
+msgstr ""
+" --asexplicit marca els paquets com a explícitament instal·lats\n"
+
+#, c-format
+msgid " -f, --force force install, overwrite conflicting files\n"
+msgstr ""
+" -f, --force força la instal·lació. sobreescrivint els fitxers amb "
+"conflictes\n"
+
+#, c-format
+msgid " --asdeps install packages as non-explicitly installed\n"
+msgstr ""
+" --asdeps instal·la paquets com a no instal·lats explícitament\n"
+
+#, c-format
+msgid " --asexplicit install packages as explicitly installed\n"
+msgstr ""
+" --asexplicit instal·la paquets com a explícitament instal·lats\n"
+
+#, c-format
+msgid ""
+" --ignore <pkg> ignore a package upgrade (can be used more than "
+"once)\n"
+msgstr ""
+" --ignore <paq> ignora l'actualització d'un paquet (es pot usar més "
+"d'un alhora)\n"
+
+#, c-format
+msgid ""
+" --ignoregroup <grp>\n"
+" ignore a group upgrade (can be used more than once)\n"
+msgstr ""
+" --ignoregroup <grup>\n"
+" ignora l'actualització d'un grup (es pot usar més "
+"d'un alhora)\n"
+
+#, c-format
+msgid ""
+" -d, --nodeps skip dependency version checks (-dd to skip all "
+"checks)\n"
+msgstr ""
+" -d, --nodeps ometre comprovacions de versions de les dependències "
+"(-dd per ometre totes les comprovacions)\n"
+
+#, c-format
+msgid ""
+" -k, --dbonly only modify database entries, not package files\n"
+msgstr ""
+" -k, --dbonly modifica entrades del paquet a la base de dades, però "
+"no fitxers\n"
+"\n"
+
+#, c-format
+msgid ""
+" --noprogressbar do not show a progress bar when downloading files\n"
+msgstr ""
+" --noprogressbar no mostra una barra de progrés en baixar fitxers\n"
+
+#, c-format
+msgid ""
+" --noscriptlet do not execute the install scriptlet if one exists\n"
+msgstr ""
+" --noscriptlet no executa l'scriptlet d'instal·lació si existeix\n"
+
+#, c-format
+msgid ""
+" --print print the targets instead of performing the "
+"operation\n"
+msgstr ""
+" --print imprimir el objectius in comptes d'executar "
+"l'operació\n"
+
+#, c-format
+msgid ""
+" --print-format <string>\n"
+" specify how the targets should be printed\n"
+msgstr ""
+" --print-format <string>\n"
+" especifica com s'ha d'imprimir els objectius\n"
+
+#, c-format
+msgid " -b, --dbpath <path> set an alternate database location\n"
+msgstr ""
+" -b, --dbpath <ruta> estableix una ubicació alternativa de la base de "
+"dades\n"
+
+#, c-format
+msgid " -r, --root <path> set an alternate installation root\n"
+msgstr ""
+" -r, --root <ruta> estableix una arrel d'instal·lació alternativa\n"
+
+#, c-format
+msgid " -v, --verbose be verbose\n"
+msgstr " -v, --verbose detallat\n"
+
+#, c-format
+msgid " --arch <arch> set an alternate architecture\n"
+msgstr " --arch <arch> estableix una arquitectura alternativa\n"
+
+#, c-format
+msgid " --cachedir <dir> set an alternate package cache location\n"
+msgstr ""
+" --cachedir <dir> estableix una ubicació de la memòria cau de paquets "
+"alternativa\n"
+
+#, c-format
+msgid " --config <path> set an alternate configuration file\n"
+msgstr ""
+" --config <ruta> estableix un fitxer de configuració alternatiu\n"
+
+#, c-format
+msgid " --debug display debug messages\n"
+msgstr " --debug mostra missatges de depuració\n"
+
+#, fuzzy, c-format
+msgid " --gpgdir <path> set an alternate home directory for GnuPG\n"
+msgstr " --logfile <ruta> estableix un fitxer de registre alternatiu\n"
+
+#, c-format
+msgid " --logfile <path> set an alternate log file\n"
+msgstr " --logfile <ruta> estableix un fitxer de registre alternatiu\n"
+
+#, c-format
+msgid " --noconfirm do not ask for any confirmation\n"
+msgstr " --noconfirm no demana cap confirmació\n"
+
+#, c-format
+msgid ""
+" This program may be freely redistributed under\n"
+" the terms of the GNU General Public License.\n"
+msgstr ""
+" Aquest programa es pot distribuir lliurement sota\n"
+" els termes de la llicència pública general de GNU.\n"
+
+#, c-format
+msgid "'%s' is not a valid debug level\n"
+msgstr "«%s» no és un nivell de depuració vàlid\n"
+
+#, c-format
+msgid "only one operation may be used at a time\n"
+msgstr "només es pot usar una operació alhora\n"
+
+#, c-format
+msgid "invalid option\n"
+msgstr "opció no vàlida\n"
+
+#, c-format
+msgid "buffer overflow detected in arg parsing\n"
+msgstr ""
+"desbordament de memòria detectat en l'anàlisi i interpolació dels arguments\n"
+
+#, c-format
+msgid "failed to reopen stdin for reading: (%s)\n"
+msgstr "Errada al reobrir stdin per a la lectura: (%s)\n"
+
+#, c-format
+msgid "you cannot perform this operation unless you are root.\n"
+msgstr "no podeu realitzar aquesta operació si no sou root.\n"
+
+#, c-format
+msgid "no operation specified (use -h for help)\n"
+msgstr "no s'ha especificat cap operació (useu -h per ajuda)\n"
+
+#, c-format
+msgid "%s is owned by %s %s\n"
+msgstr "%s pertany a %s %s\n"
+
+#, c-format
+msgid "no file was specified for --owns\n"
+msgstr "no s'ha especificat cap fitxer per --owns\n"
+
+#, c-format
+msgid "failed to find '%s' in PATH: %s\n"
+msgstr "ha fallat en trobar «%s» a la variable PATH: %s\n"
+
+#, c-format
+msgid "failed to read file '%s': %s\n"
+msgstr "ha fallat en llegir el fitxer «%s»: %s\n"
+
+#, c-format
+msgid "cannot determine ownership of directory '%s'\n"
+msgstr "no s'ha pogut determinar la propietat del directori '%s'\n"
+
+#, c-format
+msgid "cannot determine real path for '%s': %s\n"
+msgstr "no es pot determinar la ruta real per «%s»: %s\n"
+
+#, c-format
+msgid "path too long: %s%s\n"
+msgstr "ruta d'accés massa llarga:%s%s\n"
+
+#, c-format
+msgid "No package owns %s\n"
+msgstr "Cap paquet conté %s\n"
+
+#, c-format
+msgid "group \"%s\" was not found\n"
+msgstr "no s'ha trobat el grup \"%s\"\n"
+
+#, c-format
+msgid "%s: %d total file, "
+msgid_plural "%s: %d total files, "
+msgstr[0] "%s: %d fitxer en total, "
+msgstr[1] "%s: %d fitxers en total, "
+
+#, c-format
+msgid "%d missing file\n"
+msgid_plural "%d missing files\n"
+msgstr[0] "Falta %d fitxer\n"
+msgstr[1] "Falten %d fitxers\n"
+
+#, c-format
+msgid "no usable package repositories configured.\n"
+msgstr "no s'ha configurat cap repositori de paquets usable.\n"
+
+#, c-format
+msgid "package \"%s\" not found\n"
+msgstr "no s'ha trobat el paquet \"%s\"\n"
+
+#, c-format
+msgid "failed to prepare transaction (%s)\n"
+msgstr "ha fallat en preparar la transacció (%s)\n"
+
+#, c-format
+msgid ":: package %s does not have a valid architecture\n"
+msgstr ":: el paquet %s no té una arquitectura vàlida\n"
+
+#, c-format
+msgid ":: %s: requires %s\n"
+msgstr ":: %s: requereix %s\n"
+
+#, c-format
+msgid "%s is designated as a HoldPkg.\n"
+msgstr "%s és designat com a HoldPkg.\n"
+
+#, c-format
+msgid "HoldPkg was found in target list. Do you want to continue?"
+msgstr "S'ha trobat un HoldPkg en la llista d'objectius. Voleu continuar?"
+
+#, c-format
+msgid " there is nothing to do\n"
+msgstr " no hi ha res a fer\n"
+
+#, c-format
+msgid "Do you want to remove these packages?"
+msgstr "Voleu eliminar aquests paquets?"
+
+#, c-format
+msgid "failed to commit transaction (%s)\n"
+msgstr "ha fallat en publicar la transacció (%s)\n"
+
+#, c-format
+msgid "could not access database directory\n"
+msgstr "no es pot accedit al directori de la base de dades\n"
+
+#, c-format
+msgid "could not remove %s\n"
+msgstr "no s'ha pogut esborrar %s\n"
+
+#, c-format
+msgid "Do you want to remove %s?"
+msgstr "Voleu eliminar %s?"
+
+#, c-format
+msgid "Database directory: %s\n"
+msgstr "Directori de la bd: %s\n"
+
+#, c-format
+msgid "Do you want to remove unused repositories?"
+msgstr "Voleu eliminar els repositoris no usats?"
+
+#, c-format
+msgid "Database directory cleaned up\n"
+msgstr "S'ha netejat el directori de la bd\n"
+
+#, c-format
+msgid "Cache directory: %s\n"
+msgstr "Directori de memòria cau: %s\n"
+
+#, c-format
+msgid "Packages to keep:\n"
+msgstr "Paquets a conservar:\n"
+
+#, c-format
+msgid " All locally installed packages\n"
+msgstr " Tots els paquets instal·lats localment\n"
+
+#, c-format
+msgid " All current sync database packages\n"
+msgstr " Tots els paquets de base de dades a sincronitzar\n"
+
+#, c-format
+msgid "Do you want to remove all other packages from cache?"
+msgstr "Vols eliminar tots els altres paquets de la memòria cau?"
+
+#, c-format
+msgid "removing old packages from cache...\n"
+msgstr "s'estan eliminat els paquets obsolets de la memòria cau...\n"
+
+#, c-format
+msgid "Do you want to remove ALL files from cache?"
+msgstr "Voleu eliminar TOTS els fitxers de la memòria cau?"
+
+#, c-format
+msgid "removing all files from cache...\n"
+msgstr "s'està eliminant tots els fitxers de la memòria cau...\n"
+
+#, c-format
+msgid "could not access cache directory %s\n"
+msgstr "no es pot accedir al directori de memòria cau %s\n"
+
+#, c-format
+msgid "File %s does not seem to be a valid package, remove it?"
+msgstr "El fitxer %s no sembla ser un paquet vàlid, l'elimino?"
+
+#, c-format
+msgid "failed to update %s (%s)\n"
+msgstr "ha fallat en actualitzar %s (%s)\n"
+
+#, c-format
+msgid " %s is up to date\n"
+msgstr " %s és al dia\n"
+
+#, c-format
+msgid "failed to synchronize any databases\n"
+msgstr "ha fallat en sincronitzar algunes bases de dades\n"
+
+#, c-format
+msgid "installed"
+msgstr "instal·lat"
+
+#, c-format
+msgid "repository '%s' does not exist\n"
+msgstr "el repositori «%s» no existeix\n"
+
+#, c-format
+msgid "package '%s' was not found in repository '%s'\n"
+msgstr "no s'ha trobat el paquet «%s» en el repositori '%s'\n"
+
+#, c-format
+msgid "package '%s' was not found\n"
+msgstr "no s'ha trobat el paquet «%s»\n"
+
+#, c-format
+msgid "repository \"%s\" was not found.\n"
+msgstr "no s'ha trobat el repositori \"%s\".\n"
+
+#, c-format
+msgid "skipping target: %s\n"
+msgstr "s'ometrà l'objectiu: %s\n"
+
+#, c-format
+msgid "target not found: %s\n"
+msgstr "objectiu que no es troba: %s\n"
+
+#, c-format
+msgid ":: There are %d members in group %s:\n"
+msgstr ":: Hi ha %d membres en el grup %s:\n"
+
+#, c-format
+msgid "database not found: %s\n"
+msgstr "base de dades no trobada: %s\n"
+
+#, c-format
+msgid ":: Starting full system upgrade...\n"
+msgstr ":: S'està iniciant una actualització completa del sistema...\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict\n"
+msgstr ":: %s i %s tenen conflictes\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s)\n"
+msgstr ":: %s: i %s tenen conflictes (%s)\n"
+
+#, c-format
+msgid "Proceed with download?"
+msgstr "Inicio la baixada?"
+
+#, c-format
+msgid "Proceed with installation?"
+msgstr "Inicio la instal·lació?"
+
+#, c-format
+msgid "%s exists in both '%s' and '%s'\n"
+msgstr "%s existeix en ambdós «%s» i «%s»\n"
+
+#, c-format
+msgid "%s: %s exists in filesystem\n"
+msgstr "%s: %s existeix en el sistema de fitxers\n"
+
+#, c-format
+msgid "%s is invalid or corrupted\n"
+msgstr "%s és invalid o corrupte\n"
+
+#, c-format
+msgid "Errors occurred, no packages were upgraded.\n"
+msgstr "Han ocorregut errors, no s'ha actualitzat cap paquet.\n"
+
+#, c-format
+msgid ":: Synchronizing package databases...\n"
+msgstr ":: S'estan sincronitzant les bases de dades de paquets...\n"
+
+#, c-format
+msgid ":: The following packages should be upgraded first :\n"
+msgstr ":: Primer s'han d'actualitzar els següents paquets:\n"
+
+#, c-format
+msgid ""
+":: Do you want to cancel the current operation\n"
+":: and upgrade these packages now?"
+msgstr ""
+":: Voleu cancel·lar l'operació actual i\n"
+":: actualitzar primer aquests paquets?"
+
+#, c-format
+msgid "failed to init transaction (%s)\n"
+msgstr "ha fallat en iniciar la transacció (%s)\n"
+
+#, c-format
+msgid ""
+" if you're sure a package manager is not already\n"
+" running, you can remove %s\n"
+msgstr ""
+" si esteu segur que no hi ha cap gestor de paquets\n"
+" en execució, podeu eliminar %s\n"
+
+#, c-format
+msgid " try running pacman-db-upgrade\n"
+msgstr " proveu d'executar pacman-db-upgrade\n"
+
+#, c-format
+msgid "failed to release transaction (%s)\n"
+msgstr "ha fallat en alliberar la transacció (%s)\n"
+
+#, c-format
+msgid "None"
+msgstr "Cap"
+
+#, c-format
+msgid "insufficient columns available for table display\n"
+msgstr ""
+
+#, c-format
+msgid "Name"
+msgstr ""
+
+#, c-format
+msgid "Old Version"
+msgstr ""
+
+#, c-format
+msgid "New Version"
+msgstr ""
+
+#, c-format
+msgid "Size"
+msgstr ""
+
+#, c-format
+msgid "Targets (%d):"
+msgstr "Objectius (%d):"
+
+#, c-format
+msgid "Remove (%d):"
+msgstr "Elimino (%d):"
+
+#, fuzzy, c-format
+msgid "Total Download Size: %.2f %s\n"
+msgstr "Mida total baixada: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Installed Size: %.2f %s\n"
+msgstr "Mida total instal·lada: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Net Upgrade Size: %.2f %s\n"
+msgstr "Mida total baixada: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Removed Size: %.2f %s\n"
+msgstr "Mida total eliminada: %.2f MB\n"
+
+#, c-format
+msgid "New optional dependencies for %s\n"
+msgstr "Noves dependències opcionals per %s\n"
+
+#, c-format
+msgid "Optional dependencies for %s\n"
+msgstr "Dependències opcionals per %s\n"
+
+#, c-format
+msgid "Repository %s\n"
+msgstr "Programari %s\n"
+
+#, c-format
+msgid "Invalid value: %d is not between %d and %d\n"
+msgstr "valor no vàlid: %d no està entre %d i %d\n"
+
+#, c-format
+msgid "Invalid number: %s\n"
+msgstr "nombre no vàlid: %s\n"
+
+#, c-format
+msgid "Enter a selection (default=all)"
+msgstr "Introduïu una selecció (per defecte=all)"
+
+#, c-format
+msgid "Enter a number (default=%d)"
+msgstr "Introduïu un número (per defecte =%d)"
+
+#, c-format
+msgid "[Y/n]"
+msgstr "[S/n]"
+
+#, c-format
+msgid "[y/N]"
+msgstr "[s/N]"
+
+#, c-format
+msgid "Y"
+msgstr "S"
+
+#, c-format
+msgid "YES"
+msgstr "SÍ"
+
+#, c-format
+msgid "N"
+msgstr "N"
+
+#, c-format
+msgid "NO"
+msgstr "NO"
+
+#, c-format
+msgid "failed to allocate string\n"
+msgstr "No s'ha pogut assignar memòria a la cadena de caràcters\n"
+
+#, c-format
+msgid "error: %s"
+msgstr "error: %s"
+
+#, c-format
+msgid "warning: %s"
+msgstr "avís: %s"
+
+#, c-format
+msgid "error: "
+msgstr "error: "
+
+#, c-format
+msgid "warning: "
+msgstr "avís: "
+
diff --git a/src/pacman/po/cs.po b/src/pacman/po/cs.po
new file mode 100644
index 00000000..67bd77fc
--- /dev/null
+++ b/src/pacman/po/cs.po
@@ -0,0 +1,1130 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Pacman Development Team <pacman-dev@archlinux.org>
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Arch Linux Pacman package manager\n"
+"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
+"POT-Creation-Date: 2011-06-23 21:59-0500\n"
+"PO-Revision-Date: 2011-04-16 05:54+0000\n"
+"Last-Translator: vogo <vojtech.gondzala@gmail.com>\n"
+"Language-Team: Czech <None>\n"
+"Language: cs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n"
+
+#, c-format
+msgid "checking dependencies...\n"
+msgstr "kontrolují se závislosti...\n"
+
+#, c-format
+msgid "checking for file conflicts...\n"
+msgstr "kontrolují se konflikty souborů...\n"
+
+#, c-format
+msgid "resolving dependencies...\n"
+msgstr "řeší se závislosti..\n"
+
+#, c-format
+msgid "looking for inter-conflicts...\n"
+msgstr "kontrolují se interní konflikty...\n"
+
+#, c-format
+msgid "installing %s...\n"
+msgstr "instaluje se %s...\n"
+
+#, c-format
+msgid "removing %s...\n"
+msgstr "odstraňuje se %s...\n"
+
+#, c-format
+msgid "upgrading %s...\n"
+msgstr "aktualizuje se %s...\n"
+
+#, c-format
+msgid "checking package integrity...\n"
+msgstr "kontroluje se integrita balíčků...\n"
+
+#, c-format
+msgid "checking delta integrity...\n"
+msgstr "kontruje se integrita delta rozdílů...\n"
+
+#, c-format
+msgid "applying deltas...\n"
+msgstr "aplikují se delta rozdíly...\n"
+
+#, c-format
+msgid "generating %s with %s... "
+msgstr "vytváří se %s pomocí %s... "
+
+#, c-format
+msgid "success!\n"
+msgstr "úspěch!\n"
+
+#, c-format
+msgid "failed.\n"
+msgstr "selhalo.\n"
+
+#, c-format
+msgid ":: Retrieving packages from %s...\n"
+msgstr ":: Získávají se balíčky z %s...\n"
+
+#, c-format
+msgid "checking available disk space...\n"
+msgstr "kontroluje se volné místo na disku ...\n"
+
+#, c-format
+msgid ":: %s is in IgnorePkg/IgnoreGroup. Install anyway?"
+msgstr ":: %s je v IgnorePkg/IgnoreGroup. Přesto nainstalovat?"
+
+#, c-format
+msgid ":: Replace %s with %s/%s?"
+msgstr ":: Nahradit %s za %s/%s?"
+
+#, c-format
+msgid ":: %s and %s are in conflict. Remove %s?"
+msgstr ":: %s a %s jsou v konfliktu. Odstranit %s?"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s). Remove %s?"
+msgstr ":: %s a %s jsou v konfliktu (%s). Odstranit %s?"
+
+#, c-format
+msgid ""
+":: The following package cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgid_plural ""
+":: The following packages cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgstr[0] ""
+":: Následující balíček nemůže být aktualizován, nepodařilo se vyřešit "
+"závislosti:\n"
+msgstr[1] ""
+":: Následující balíčky nemohou být aktualizovány, nepodařilo se vyřešit "
+"závislosti:\n"
+msgstr[2] ""
+":: Následující balíčky nemohou být aktualizovány, nepodařilo se vyřešit "
+"závislosti:\n"
+
+#, c-format
+msgid "Do you want to skip the above package for this upgrade?"
+msgid_plural "Do you want to skip the above packages for this upgrade?"
+msgstr[0] "Chcete přeskočit na výše uvedený balíček pro tuto aktualizaci?"
+msgstr[1] "Chcete přeskočit na výše uvedené balíčky pro tuto aktualizaci?"
+msgstr[2] "Chcete přeskočit na výše uvedené balíčky pro tuto aktualizaci?"
+
+#, c-format
+msgid ":: There are %d providers available for %s:\n"
+msgstr ":: %d balíčků poskytuje %s:\n"
+
+#, c-format
+msgid ":: %s-%s: local version is newer. Upgrade anyway?"
+msgstr ":: %s-%s: lokální verze je novější. Přesto aktualizovat?"
+
+#, c-format
+msgid ":: File %s is corrupted. Do you want to delete it?"
+msgstr ":: Soubor %s je poškozen. Chcete jej smazat?"
+
+#, c-format
+msgid "installing"
+msgstr "instalace"
+
+#, c-format
+msgid "upgrading"
+msgstr "aktualizace"
+
+#, c-format
+msgid "removing"
+msgstr "odstranění"
+
+#, c-format
+msgid "checking for file conflicts"
+msgstr "kontrola konfliktů souborů"
+
+#, c-format
+msgid "checking available disk space"
+msgstr "kontrola volného místa na disku"
+
+#, c-format
+msgid "checking package integrity"
+msgstr "kontrola integrity balíčků"
+
+#, c-format
+msgid "downloading %s...\n"
+msgstr "stahuje se %s...\n"
+
+#, c-format
+msgid "malloc failure: could not allocate %zd bytes\n"
+msgstr "malloc selhal: nelze alokovat %zd bytů\n"
+
+#, c-format
+msgid "could not get current working directory\n"
+msgstr "nepodařilo získat aktuální pracovní adresář\n"
+
+#, c-format
+msgid "could not chdir to download directory %s\n"
+msgstr "nelze se přesunout do adresáře pro stahování (%s)\n"
+
+#, c-format
+msgid "running XferCommand: fork failed!\n"
+msgstr "spuštění XferCommand selhalo!\n"
+
+#, c-format
+msgid "could not change directory to %s (%s)\n"
+msgstr "nepodařilo se změnit adresář na %s (%s)\n"
+
+#, c-format
+msgid "invalid value for 'CleanMethod' : '%s'\n"
+msgstr "chybná hodnota pro 'CleanMethod': '%s'\n"
+
+#, c-format
+msgid ""
+"config file %s, line %d: directive '%s' in section '%s' not recognized.\n"
+msgstr ""
+"konfigurační soubor %s, řádek %d: direktiva '%s' v sekci '%s' nebyla "
+"rozpoznána.\n"
+
+#, fuzzy, c-format
+msgid "config file %s, line %d: directive '%s' has invalid value '%s'\n"
+msgstr ""
+"konfigurační soubor %s, řádek %d: direktiva '%s' vyžaduje zadanou hodnotu\n"
+
+#, c-format
+msgid ""
+"The mirror '%s' contains the $arch variable, but no Architecture is "
+"defined.\n"
+msgstr ""
+"Zrcadlo '%s' obsahuje proměnnou $arch, ale architektura nebyla definována.\n"
+
+#, c-format
+msgid "could not add server URL to database '%s': %s (%s)\n"
+msgstr "nelze přidat URL serveru k databázi '%s': %s (%s)\n"
+
+#, c-format
+msgid "failed to initialize alpm library (%s)\n"
+msgstr "selhala inicializace knihovny alpm (%s)\n"
+
+#, c-format
+msgid "problem setting logfile '%s' (%s)\n"
+msgstr "problém s nastavením log souboru '%s' (%s)\n"
+
+#, fuzzy, c-format
+msgid "problem setting gpgdir '%s' (%s)\n"
+msgstr "problém s nastavením kořenového adresáře '%s' (%s)\n"
+
+#, c-format
+msgid "could not register '%s' database (%s)\n"
+msgstr "nelze zaregistrovat databázi '%s' (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not set verify option for database '%s' (%s)\n"
+msgstr "nelze přidat URL serveru k databázi '%s': %s (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not add mirror '%s' to database '%s' (%s)\n"
+msgstr "nelze přidat URL serveru k databázi '%s': %s (%s)\n"
+
+#, c-format
+msgid "config parsing exceeded max recursion depth of %d.\n"
+msgstr ""
+
+#, c-format
+msgid "config file %s could not be read.\n"
+msgstr "konfigurační soubor %s nelze přečíst.\n"
+
+#, c-format
+msgid "config file %s, line %d: bad section name.\n"
+msgstr "konfigurační soubor %s, řádek %d: chybné jméno sekce.\n"
+
+#, c-format
+msgid "config file %s, line %d: syntax error in config file- missing key.\n"
+msgstr ""
+"konfigurační soubor %s, řádek %d: chybná syntaxe konfiguračního souboru, "
+"chybí hodnota.\n"
+
+#, c-format
+msgid "config file %s, line %d: All directives must belong to a section.\n"
+msgstr ""
+"konfigurační soubor %s, řádek %d: Všechny direktivy musí náležet nějaké "
+"sekci.\n"
+
+#, c-format
+msgid "config file %s, line %d: directive '%s' needs a value\n"
+msgstr ""
+"konfigurační soubor %s, řádek %d: direktiva '%s' vyžaduje zadanou hodnotu\n"
+
+#, c-format
+msgid "no targets specified (use -h for help)\n"
+msgstr "nejsou specifikovány cíle (použijte -h pro nápovědu)\n"
+
+#, c-format
+msgid "no install reason specified (use -h for help)\n"
+msgstr "nebyl zadán důvod instalace (použijte -h pro nápovědu)\n"
+
+#, c-format
+msgid "could not set install reason for package %s (%s)\n"
+msgstr "nepodařilo se nastavit důvod instalace balíčku %s (%s)\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'installed as dependency'\n"
+msgstr "%s: důvod instalace byl nastaven na 'nainstalován jako závislost'\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'explicitly installed'\n"
+msgstr "%s: důvod instalace byl nastaven na 'výslovně nainstalován'\n"
+
+#, c-format
+msgid "Explicitly installed"
+msgstr "Výslovně nainstalován"
+
+#, c-format
+msgid "Installed as a dependency for another package"
+msgstr "Nainstalován jako závislost jiného balíčku"
+
+#, c-format
+msgid "Unknown"
+msgstr "Neznámý"
+
+#, c-format
+msgid "Repository :"
+msgstr "Repozitář :"
+
+#, c-format
+msgid "Name :"
+msgstr "Jméno :"
+
+#, c-format
+msgid "Version :"
+msgstr "Verze :"
+
+#, c-format
+msgid "URL :"
+msgstr "URL :"
+
+#, c-format
+msgid "Licenses :"
+msgstr "Licence :"
+
+#, c-format
+msgid "Groups :"
+msgstr "Skupiny :"
+
+#, c-format
+msgid "Provides :"
+msgstr "Poskytuje :"
+
+#, c-format
+msgid "Depends On :"
+msgstr "Závisí na :"
+
+#, c-format
+msgid "Optional Deps :"
+msgstr "Volitelné záv. :"
+
+#, c-format
+msgid "Required By :"
+msgstr "Požadovaný :"
+
+#, c-format
+msgid "Conflicts With :"
+msgstr "Konfliktní s :"
+
+#, c-format
+msgid "Replaces :"
+msgstr "Nahrazuje :"
+
+#, fuzzy, c-format
+msgid "Download Size : %6.2f %s\n"
+msgstr "Stažená vel. : %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Compressed Size: %6.2f %s\n"
+msgstr "Zabalená vel. : %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Installed Size : %6.2f %s\n"
+msgstr "Vel. instalace : %6.2f K\n"
+
+#, c-format
+msgid "Packager :"
+msgstr "Zabalil :"
+
+#, c-format
+msgid "Architecture :"
+msgstr "Architektura :"
+
+#, c-format
+msgid "Build Date :"
+msgstr "Datum sestavení:"
+
+#, c-format
+msgid "Install Date :"
+msgstr "Datum instalace:"
+
+#, c-format
+msgid "Install Reason :"
+msgstr "Důvod instalace:"
+
+#, c-format
+msgid "Install Script :"
+msgstr "Instal. skript :"
+
+#, c-format
+msgid "Yes"
+msgstr "Ano"
+
+#, c-format
+msgid "No"
+msgstr "Ne"
+
+#, c-format
+msgid "MD5 Sum :"
+msgstr "MD5 součet :"
+
+#, c-format
+msgid "Description :"
+msgstr "Popis :"
+
+#, c-format
+msgid "could not calculate checksums for %s\n"
+msgstr "nelze spočítat kontrolní součet pro %s\n"
+
+#, c-format
+msgid "Backup Files:\n"
+msgstr "Zálohované soubory:\n"
+
+#, c-format
+msgid "(none)\n"
+msgstr "(žádný)\n"
+
+#, c-format
+msgid "no changelog available for '%s'.\n"
+msgstr "seznam změn pro '%s' není dostupný.\n"
+
+#, c-format
+msgid "options"
+msgstr "volby"
+
+#, c-format
+msgid "file(s)"
+msgstr "soubor(y)"
+
+#, c-format
+msgid "package(s)"
+msgstr "balíček(y)"
+
+#, c-format
+msgid "usage"
+msgstr "použití"
+
+#, c-format
+msgid "operation"
+msgstr "operace"
+
+#, c-format
+msgid "operations:\n"
+msgstr "operace:\n"
+
+#, c-format
+msgid ""
+"\n"
+"use '%s {-h --help}' with an operation for available options\n"
+msgstr ""
+"\n"
+"použijte '%s {-h --help}' s přepínačem operace pro další nápovědu\n"
+
+#, c-format
+msgid ""
+" -c, --cascade remove packages and all packages that depend on them\n"
+msgstr ""
+" -c, --cascade odstranit balíčky včetně všech, které na nich závisí\n"
+
+#, c-format
+msgid " -n, --nosave remove configuration files\n"
+msgstr " -n, --nosave odstraní konfigurační soubory\n"
+
+#, c-format
+msgid ""
+" -s, --recursive remove unnecessary dependencies\n"
+" (-ss includes explicitly installed dependencies)\n"
+msgstr ""
+" -s, --recursive odstraní nepotřebné závislosti\n"
+" (-ss včetně výslovně nainstalovaných závislostí)\n"
+
+#, c-format
+msgid " -u, --unneeded remove unneeded packages\n"
+msgstr " -u, --unneeded odstraní nepotřebné závislosti\n"
+
+#, c-format
+msgid " -c, --changelog view the changelog of a package\n"
+msgstr " -c, --changelog vypsat seznam změn balíčku\n"
+
+#, c-format
+msgid ""
+" -d, --deps list packages installed as dependencies [filter]\n"
+msgstr ""
+" -d, --deps seznam všech balíčků instalovaných jako závislosti "
+"[filter]\n"
+
+#, c-format
+msgid " -e, --explicit list packages explicitly installed [filter]\n"
+msgstr ""
+" -e, --explicit seznam všech výslovně instalovaných balíčků [filter]\n"
+
+#, c-format
+msgid " -g, --groups view all members of a package group\n"
+msgstr " -g, --groups vypsat všechny balíčky ve skupině\n"
+
+#, c-format
+msgid ""
+" -i, --info view package information (-ii for backup files)\n"
+msgstr ""
+" -i, --info zobrazit informace o balíčku (-ii zálohované "
+"soubory)\n"
+
+#, c-format
+msgid ""
+" -k, --check check that the files owned by the package(s) are "
+"present\n"
+msgstr ""
+" -k, --check kontrola, zda jsou přítomny všechny soubory z "
+"balíčku\n"
+
+#, c-format
+msgid " -l, --list list the contents of the queried package\n"
+msgstr " -l, --list seznam souborů v balíčku\n"
+
+#, c-format
+msgid ""
+" -m, --foreign list installed packages not found in sync db(s) "
+"[filter]\n"
+msgstr ""
+" -m, --foreign seznam nainstalovaných balíčků nalezených "
+"repozitářích [filter]\n"
+
+#, c-format
+msgid " -o, --owns <file> query the package that owns <file>\n"
+msgstr " -o, --owns <file> vyhledat balíček obsahující <file>\n"
+
+#, c-format
+msgid " -p, --file <package> query a package file instead of the database\n"
+msgstr " -p, --file <package> dotaz na soubor balíčku místo na databázi\n"
+
+#, c-format
+msgid " -q, --quiet show less information for query and search\n"
+msgstr " -q, --quiet zobrazit méně informací při dotazu a hledání\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search locally-installed packages for matching "
+"strings\n"
+msgstr ""
+" -s, --search <regex> vyhledat nainstalované balíčky, odpovídající řetězci\n"
+
+#, c-format
+msgid ""
+" -t, --unrequired list packages not required by any package [filter]\n"
+msgstr ""
+" -t, --unrequired seznam všech balíčků nevyžadovaných jiným balíčkem "
+"[filter]\n"
+
+#, c-format
+msgid " -u, --upgrades list outdated packages [filter]\n"
+msgstr ""
+" -u, --upgrades seznam všech aktualizovatelných balíčků [filter]\n"
+
+#, c-format
+msgid ""
+" -c, --clean remove old packages from cache directory (-cc for "
+"all)\n"
+msgstr ""
+" -c, --clean odstranit staré balíčky z mezipaměti (-cc pro "
+"všechny)\n"
+
+#, c-format
+msgid " -i, --info view package information\n"
+msgstr " -i, --info zobrazit informace o balíčku\n"
+
+#, c-format
+msgid " -l, --list <repo> view a list of packages in a repo\n"
+msgstr " -l, --list <repo> zobrazit seznam balíčků v repozitáři\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search remote repositories for matching strings\n"
+msgstr ""
+" -s, --search <regex> vyhledat balíčky v repozitářích, odpovídající "
+"řetězci\n"
+
+#, c-format
+msgid ""
+" -u, --sysupgrade upgrade installed packages (-uu allows downgrade)\n"
+msgstr ""
+" -u, --sysupgrade aktualizovat nainstalované balíčky (--uu umožní "
+"snížení verze)\n"
+
+#, c-format
+msgid ""
+" -w, --downloadonly download packages but do not install/upgrade "
+"anything\n"
+msgstr ""
+" -w, --downloadonly pouze stáhnout balíčky, neinstalovat/neaktualizovat\n"
+
+#, c-format
+msgid ""
+" -y, --refresh download fresh package databases from the server\n"
+msgstr " -y, --refresh stáhnout aktuální databázi balíčků ze serveru\n"
+
+#, c-format
+msgid " --needed don't reinstall up to date packages\n"
+msgstr " --needed potlačit instalaci aktuálních balíčků\n"
+
+#, c-format
+msgid " --asdeps mark packages as non-explicitly installed\n"
+msgstr " --asdeps označit balíčky jako závislosti\n"
+
+#, c-format
+msgid " --asexplicit mark packages as explicitly installed\n"
+msgstr " --asexplicit označit balíčky jako výslovně instalované\n"
+
+#, c-format
+msgid " -f, --force force install, overwrite conflicting files\n"
+msgstr ""
+" -f, --force vynucená instalace, přepíše konfliktní soubory\n"
+
+#, c-format
+msgid " --asdeps install packages as non-explicitly installed\n"
+msgstr " --asdeps nainstalovat balíčky jako závislosti\n"
+
+#, c-format
+msgid " --asexplicit install packages as explicitly installed\n"
+msgstr ""
+" --asexplicit nainstalovat balíčky jako výslovně instalované\n"
+
+#, c-format
+msgid ""
+" --ignore <pkg> ignore a package upgrade (can be used more than "
+"once)\n"
+msgstr ""
+" --ignore <pkg> ignorovat aktualizaci balíčku (lze použít vícekrát)\n"
+
+#, c-format
+msgid ""
+" --ignoregroup <grp>\n"
+" ignore a group upgrade (can be used more than once)\n"
+msgstr ""
+" --ignoregroup <grp>\n"
+" ignorovat aktualizaci skupiny (lze použít vícekrát)\n"
+
+#, c-format
+msgid ""
+" -d, --nodeps skip dependency version checks (-dd to skip all "
+"checks)\n"
+msgstr ""
+" -d, --nodeps přeskočí kontrolu verze závislostí\n"
+" (-dd přeskočí všechny kontroly)\n"
+
+#, c-format
+msgid ""
+" -k, --dbonly only modify database entries, not package files\n"
+msgstr ""
+" -k, --dbonly změnit jen záznam v databázi, neměnit soubory "
+"balíčku\n"
+
+#, c-format
+msgid ""
+" --noprogressbar do not show a progress bar when downloading files\n"
+msgstr " --noprogressbar nezobrazovat průběh stahování souborů\n"
+
+#, c-format
+msgid ""
+" --noscriptlet do not execute the install scriptlet if one exists\n"
+msgstr " --noscriptlet nespouštět instalační skripty\n"
+
+#, c-format
+msgid ""
+" --print print the targets instead of performing the "
+"operation\n"
+msgstr " --print vypíše cíle místo spuštění operace\n"
+
+#, c-format
+msgid ""
+" --print-format <string>\n"
+" specify how the targets should be printed\n"
+msgstr ""
+" --print-format <string>\n"
+" určí, jak mají být cíle vypsány\n"
+
+#, c-format
+msgid " -b, --dbpath <path> set an alternate database location\n"
+msgstr " -b, --dbpath <path> nastavit umístění databáze\n"
+
+#, c-format
+msgid " -r, --root <path> set an alternate installation root\n"
+msgstr " -r, --root <path> nastavit kořen instalace\n"
+
+#, c-format
+msgid " -v, --verbose be verbose\n"
+msgstr " -v, --verbose zobrazit více informací\n"
+
+#, c-format
+msgid " --arch <arch> set an alternate architecture\n"
+msgstr " --arch <arch> nastavit alternativní architekturu\n"
+
+#, c-format
+msgid " --cachedir <dir> set an alternate package cache location\n"
+msgstr " --cachedir <dir> nastavit cestu k adresáři s cache\n"
+
+#, c-format
+msgid " --config <path> set an alternate configuration file\n"
+msgstr " --config <path> nastavit cestu ke konfiguračnímu souboru\n"
+
+#, c-format
+msgid " --debug display debug messages\n"
+msgstr " --debug zobrazit ladící zprávy\n"
+
+#, fuzzy, c-format
+msgid " --gpgdir <path> set an alternate home directory for GnuPG\n"
+msgstr " --logfile <path> nastavit cestu k log souboru\n"
+
+#, c-format
+msgid " --logfile <path> set an alternate log file\n"
+msgstr " --logfile <path> nastavit cestu k log souboru\n"
+
+#, c-format
+msgid " --noconfirm do not ask for any confirmation\n"
+msgstr " --noconfirm neptat se na žádná potvrzení\n"
+
+#, c-format
+msgid ""
+" This program may be freely redistributed under\n"
+" the terms of the GNU General Public License.\n"
+msgstr ""
+" Tento program může být svobodně šířen za\n"
+" podmínek stanovených GNU GPL (General Public "
+"License).\n"
+
+#, c-format
+msgid "'%s' is not a valid debug level\n"
+msgstr "'%s' není validní ladící úroveň\n"
+
+#, c-format
+msgid "only one operation may be used at a time\n"
+msgstr "současně lze spustit jen jednu operaci\n"
+
+#, c-format
+msgid "invalid option\n"
+msgstr "neplatný přepínač\n"
+
+#, c-format
+msgid "buffer overflow detected in arg parsing\n"
+msgstr "při zpracování argumentů došlo k přetečení zásobníku\n"
+
+#, c-format
+msgid "failed to reopen stdin for reading: (%s)\n"
+msgstr "nepodařilo se znovu otevřít standardní vstup pro čtení: (%s)\n"
+
+#, c-format
+msgid "you cannot perform this operation unless you are root.\n"
+msgstr "operaci nelze provést, pokud nejste root.\n"
+
+#, c-format
+msgid "no operation specified (use -h for help)\n"
+msgstr "nebyla specifikována operace (použijte -h pro nápovědu)\n"
+
+#, c-format
+msgid "%s is owned by %s %s\n"
+msgstr "%s vlastní %s %s\n"
+
+#, c-format
+msgid "no file was specified for --owns\n"
+msgstr "nebyl určen soubor pro --owns\n"
+
+#, c-format
+msgid "failed to find '%s' in PATH: %s\n"
+msgstr "nepodařilo se nalézt '%s' v PATH: %s\n"
+
+#, c-format
+msgid "failed to read file '%s': %s\n"
+msgstr "selhalo čtení souboru '%s': %s\n"
+
+#, c-format
+msgid "cannot determine ownership of directory '%s'\n"
+msgstr "nepodařilo se určit vlastníka adresáře '%s'\n"
+
+#, c-format
+msgid "cannot determine real path for '%s': %s\n"
+msgstr "nelze určit skutečnou cestu pro '%s': %s\n"
+
+#, c-format
+msgid "path too long: %s%s\n"
+msgstr "cesta je příliš dlouhá: %s%s\n"
+
+#, c-format
+msgid "No package owns %s\n"
+msgstr "Žádný balíček nevlastní %s\n"
+
+#, c-format
+msgid "group \"%s\" was not found\n"
+msgstr "skupina \"%s\" nebyla nalezena\n"
+
+#, c-format
+msgid "%s: %d total file, "
+msgid_plural "%s: %d total files, "
+msgstr[0] "%s: celkem %d soubor, "
+msgstr[1] "%s: celkem %d souborů, "
+msgstr[2] "%s: celkem %d souborů, "
+
+#, c-format
+msgid "%d missing file\n"
+msgid_plural "%d missing files\n"
+msgstr[0] "%d chybějící soubor\n"
+msgstr[1] "%d chybějící soubory\n"
+msgstr[2] "%d chybějících souborů\n"
+
+#, c-format
+msgid "no usable package repositories configured.\n"
+msgstr "nejsou nastaveny žádné použitelné repozitáře.\n"
+
+#, c-format
+msgid "package \"%s\" not found\n"
+msgstr "balíček \"%s\" nebyl nalezen\n"
+
+#, c-format
+msgid "failed to prepare transaction (%s)\n"
+msgstr "selhala příprava transakce (%s)\n"
+
+#, c-format
+msgid ":: package %s does not have a valid architecture\n"
+msgstr ":: balíček %s nemá platnou architekturu\n"
+
+#, c-format
+msgid ":: %s: requires %s\n"
+msgstr ":: %s: vyžaduje %s\n"
+
+#, c-format
+msgid "%s is designated as a HoldPkg.\n"
+msgstr "%s je označen jako HoldPkg.\n"
+
+#, c-format
+msgid "HoldPkg was found in target list. Do you want to continue?"
+msgstr "Mezi cíly byl naleze balíček označený jako HoldPkg. Chcete pokračovat?"
+
+#, c-format
+msgid " there is nothing to do\n"
+msgstr " není co dělat\n"
+
+#, c-format
+msgid "Do you want to remove these packages?"
+msgstr "Chcete odstranit tyto balíčky?"
+
+#, c-format
+msgid "failed to commit transaction (%s)\n"
+msgstr "selhalo provádění transakce (%s)\n"
+
+#, c-format
+msgid "could not access database directory\n"
+msgstr "nelze přistoupit k adresáři s databází\n"
+
+#, c-format
+msgid "could not remove %s\n"
+msgstr "nelze odstranit %s\n"
+
+#, c-format
+msgid "Do you want to remove %s?"
+msgstr "Chcete odstranit %s?"
+
+#, c-format
+msgid "Database directory: %s\n"
+msgstr "Adresář databáze: %s\n"
+
+#, c-format
+msgid "Do you want to remove unused repositories?"
+msgstr "Chcete odstranit nepoužívané repozitáře?"
+
+#, c-format
+msgid "Database directory cleaned up\n"
+msgstr "Adresář databáze vyčištěn\n"
+
+#, c-format
+msgid "Cache directory: %s\n"
+msgstr "Adresář mezipaměti: %s\n"
+
+#, c-format
+msgid "Packages to keep:\n"
+msgstr "Ponechané balíčky:\n"
+
+#, c-format
+msgid " All locally installed packages\n"
+msgstr " Všechny lokálně nainstalované balíčky\n"
+
+#, c-format
+msgid " All current sync database packages\n"
+msgstr " Všechnu balíčky v databázi\n"
+
+#, c-format
+msgid "Do you want to remove all other packages from cache?"
+msgstr "Chcete odstranit všechny ostatní balíčky z cache?"
+
+#, c-format
+msgid "removing old packages from cache...\n"
+msgstr "odstraňují se staré balíčky z mezipaměti...\n"
+
+#, c-format
+msgid "Do you want to remove ALL files from cache?"
+msgstr "Chcete odstranit VŠECHNY soubory z mezipaměti?"
+
+#, c-format
+msgid "removing all files from cache...\n"
+msgstr "odstraňují se všechny soubory z mezipaměti...\n"
+
+#, c-format
+msgid "could not access cache directory %s\n"
+msgstr "nelze přistoupit k adresáři s mezipamětí %s\n"
+
+#, c-format
+msgid "File %s does not seem to be a valid package, remove it?"
+msgstr "Soubor %s nevypadá jako platný balíček, má se odstranit?"
+
+#, c-format
+msgid "failed to update %s (%s)\n"
+msgstr "selhala aktualizace %s (%s)\n"
+
+#, c-format
+msgid " %s is up to date\n"
+msgstr " %s je aktuální\n"
+
+#, c-format
+msgid "failed to synchronize any databases\n"
+msgstr "selhala synchronizace databáze\n"
+
+#, c-format
+msgid "installed"
+msgstr "nainstalovaný"
+
+#, c-format
+msgid "repository '%s' does not exist\n"
+msgstr "repozitář '%s' neexistuje\n"
+
+#, c-format
+msgid "package '%s' was not found in repository '%s'\n"
+msgstr "balíček '%s' nebyl nalezen v repozitáři '%s'\n"
+
+#, c-format
+msgid "package '%s' was not found\n"
+msgstr "balíček '%s' nebyl nalezen\n"
+
+#, c-format
+msgid "repository \"%s\" was not found.\n"
+msgstr "repozitář \"%s\" nebyl nalezen.\n"
+
+#, c-format
+msgid "skipping target: %s\n"
+msgstr "přeskakuje se cíl: %s\n"
+
+#, c-format
+msgid "target not found: %s\n"
+msgstr "cíl nebyl nalezen: %s\n"
+
+#, c-format
+msgid ":: There are %d members in group %s:\n"
+msgstr ":: %d členů ve skupině %s:\n"
+
+#, c-format
+msgid "database not found: %s\n"
+msgstr "databáze nebyla nalezen: %s\n"
+
+#, c-format
+msgid ":: Starting full system upgrade...\n"
+msgstr ":: Spouští se aktualizace systému...\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict\n"
+msgstr ":: %s a %s jsou v konfliktu\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s)\n"
+msgstr ":: %s a %s jsou v konfliktu (%s)\n"
+
+#, c-format
+msgid "Proceed with download?"
+msgstr "Pokračovat ve stahování?"
+
+#, c-format
+msgid "Proceed with installation?"
+msgstr "Pokračovat v instalaci?"
+
+#, c-format
+msgid "%s exists in both '%s' and '%s'\n"
+msgstr "%s se nachází v '%s' a '%s'\n"
+
+#, c-format
+msgid "%s: %s exists in filesystem\n"
+msgstr "%s: %s již existuje v souborovém systému\n"
+
+#, c-format
+msgid "%s is invalid or corrupted\n"
+msgstr "%s je chybný nebo poškozený\n"
+
+#, c-format
+msgid "Errors occurred, no packages were upgraded.\n"
+msgstr "Vyskytly se chyby, žádné balíčky nebyly aktualizovány.\n"
+
+#, c-format
+msgid ":: Synchronizing package databases...\n"
+msgstr ":: Synchronizuje se databáze balíčků...\n"
+
+#, c-format
+msgid ":: The following packages should be upgraded first :\n"
+msgstr ":: Následující balíčky by měly být aktualizovány nejdříve:\n"
+
+#, c-format
+msgid ""
+":: Do you want to cancel the current operation\n"
+":: and upgrade these packages now?"
+msgstr ":: Chcete zrušit současnou operaci a aktualizovat tyto balíčky?"
+
+#, c-format
+msgid "failed to init transaction (%s)\n"
+msgstr "selhala příprava transakce (%s)\n"
+
+#, c-format
+msgid ""
+" if you're sure a package manager is not already\n"
+" running, you can remove %s\n"
+msgstr ""
+" pokud jste si jisti, že právě neběží správce balíčků,\n"
+" můžete odstranit %s\n"
+
+#, c-format
+msgid " try running pacman-db-upgrade\n"
+msgstr " zkuste spustit pacman-db-upgrade\n"
+
+#, c-format
+msgid "failed to release transaction (%s)\n"
+msgstr "selhalo dokončení transakce (%s)\n"
+
+#, c-format
+msgid "None"
+msgstr "Nic"
+
+#, c-format
+msgid "insufficient columns available for table display\n"
+msgstr ""
+
+#, c-format
+msgid "Name"
+msgstr ""
+
+#, c-format
+msgid "Old Version"
+msgstr ""
+
+#, c-format
+msgid "New Version"
+msgstr ""
+
+#, c-format
+msgid "Size"
+msgstr ""
+
+#, c-format
+msgid "Targets (%d):"
+msgstr "Cíle (%d):"
+
+#, c-format
+msgid "Remove (%d):"
+msgstr "Odstranit (%d):"
+
+#, fuzzy, c-format
+msgid "Total Download Size: %.2f %s\n"
+msgstr "Celková velikost stahování: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Installed Size: %.2f %s\n"
+msgstr "Celková velikost instalace: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Net Upgrade Size: %.2f %s\n"
+msgstr "Celková velikost stahování: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Removed Size: %.2f %s\n"
+msgstr "Celková uvolněná velikost: %.2f MB\n"
+
+#, c-format
+msgid "New optional dependencies for %s\n"
+msgstr "Nové volitelné závislosti pro %s\n"
+
+#, c-format
+msgid "Optional dependencies for %s\n"
+msgstr "Volitelné závislosti pro %s\n"
+
+#, c-format
+msgid "Repository %s\n"
+msgstr "Repozitář %s\n"
+
+#, c-format
+msgid "Invalid value: %d is not between %d and %d\n"
+msgstr "Neplatná hodnota: %d není v rozmezí %d až %d\n"
+
+#, c-format
+msgid "Invalid number: %s\n"
+msgstr "Neplatné číslo: %s\n"
+
+#, c-format
+msgid "Enter a selection (default=all)"
+msgstr "Zadejte výběr (výzchozí = všechny)"
+
+#, c-format
+msgid "Enter a number (default=%d)"
+msgstr "Zadejte číslo (výchozí = %d)"
+
+#, c-format
+msgid "[Y/n]"
+msgstr "[A/n]"
+
+#, c-format
+msgid "[y/N]"
+msgstr "[a/N]"
+
+#, c-format
+msgid "Y"
+msgstr "A"
+
+#, c-format
+msgid "YES"
+msgstr "ANO"
+
+#, c-format
+msgid "N"
+msgstr "N"
+
+#, c-format
+msgid "NO"
+msgstr "NE"
+
+#, c-format
+msgid "failed to allocate string\n"
+msgstr "Nepodařilo se alokovat řetězec\n"
+
+#, c-format
+msgid "error: %s"
+msgstr "chyba: %s"
+
+#, c-format
+msgid "warning: %s"
+msgstr "varování: %s"
+
+#, c-format
+msgid "error: "
+msgstr "chyba: "
+
+#, c-format
+msgid "warning: "
+msgstr "varování: "
+
diff --git a/src/pacman/po/da.po b/src/pacman/po/da.po
new file mode 100644
index 00000000..63d26f83
--- /dev/null
+++ b/src/pacman/po/da.po
@@ -0,0 +1,1117 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Pacman Development Team <pacman-dev@archlinux.org>
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Arch Linux Pacman package manager\n"
+"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
+"POT-Creation-Date: 2011-06-23 21:59-0500\n"
+"PO-Revision-Date: 2011-03-28 02:39+0000\n"
+"Last-Translator: toofishes <dpmcgee@gmail.com>\n"
+"Language-Team: Danish <None>\n"
+"Language: da\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"
+
+#, c-format
+msgid "checking dependencies...\n"
+msgstr "tjekker afhængigheder...\n"
+
+#, c-format
+msgid "checking for file conflicts...\n"
+msgstr "tjekker for filkonflikter...\n"
+
+#, c-format
+msgid "resolving dependencies...\n"
+msgstr "løser afhængigheder...\n"
+
+#, c-format
+msgid "looking for inter-conflicts...\n"
+msgstr "kigger efter mellemkonflikter...\n"
+
+#, c-format
+msgid "installing %s...\n"
+msgstr "installerer %s...\n"
+
+#, c-format
+msgid "removing %s...\n"
+msgstr "fjerner %s...\n"
+
+#, c-format
+msgid "upgrading %s...\n"
+msgstr "opgraderer %s...\n"
+
+#, c-format
+msgid "checking package integrity...\n"
+msgstr "tjekker pakkeintegritet...\n"
+
+#, c-format
+msgid "checking delta integrity...\n"
+msgstr "tjekker deltaintegritet...\n"
+
+#, c-format
+msgid "applying deltas...\n"
+msgstr "anvender deltaer...\n"
+
+#, c-format
+msgid "generating %s with %s... "
+msgstr "opretter %s med %s... "
+
+#, c-format
+msgid "success!\n"
+msgstr "lykkedes!\n"
+
+#, c-format
+msgid "failed.\n"
+msgstr "fejlede.\n"
+
+#, c-format
+msgid ":: Retrieving packages from %s...\n"
+msgstr ":: Henter pakker fra %s...\n"
+
+#, c-format
+msgid "checking available disk space...\n"
+msgstr ""
+
+#, c-format
+msgid ":: %s is in IgnorePkg/IgnoreGroup. Install anyway?"
+msgstr ":: %s er en IgnorePkg/IgnoreGroup. Installer alligevel?"
+
+#, c-format
+msgid ":: Replace %s with %s/%s?"
+msgstr ":: Erstat %s med %s/%s?"
+
+#, c-format
+msgid ":: %s and %s are in conflict. Remove %s?"
+msgstr ":: %s og %s er i konflikt. Fjern %s?"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s). Remove %s?"
+msgstr ":: %s og %s er i konflikt (%s). Fjern %s?"
+
+#, c-format
+msgid ""
+":: The following package cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgid_plural ""
+":: The following packages cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "Do you want to skip the above package for this upgrade?"
+msgid_plural "Do you want to skip the above packages for this upgrade?"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid ":: There are %d providers available for %s:\n"
+msgstr ""
+
+#, c-format
+msgid ":: %s-%s: local version is newer. Upgrade anyway?"
+msgstr ":: %s-%s: lokal version er nyere. Opgrader alligevel?"
+
+#, c-format
+msgid ":: File %s is corrupted. Do you want to delete it?"
+msgstr ":: Fil %s er ødelagt. Ønsker du at slette den?"
+
+#, c-format
+msgid "installing"
+msgstr "installerer"
+
+#, c-format
+msgid "upgrading"
+msgstr "opgraderer"
+
+#, c-format
+msgid "removing"
+msgstr "fjerner"
+
+#, c-format
+msgid "checking for file conflicts"
+msgstr "tjekker for filkonflikter"
+
+#, c-format
+msgid "checking available disk space"
+msgstr ""
+
+#, c-format
+msgid "checking package integrity"
+msgstr ""
+
+#, c-format
+msgid "downloading %s...\n"
+msgstr "henter %s...\n"
+
+#, c-format
+msgid "malloc failure: could not allocate %zd bytes\n"
+msgstr "malloc-fejl: Kunne ikke allokere %zd byte\n"
+
+#, c-format
+msgid "could not get current working directory\n"
+msgstr ""
+
+#, c-format
+msgid "could not chdir to download directory %s\n"
+msgstr "kunne ikke ændre mappe (chdir) til overførelsesmappe %s\n"
+
+#, c-format
+msgid "running XferCommand: fork failed!\n"
+msgstr "udfører XferCommand: Forgrening mislykkedes!\n"
+
+#, c-format
+msgid "could not change directory to %s (%s)\n"
+msgstr ""
+
+#, c-format
+msgid "invalid value for 'CleanMethod' : '%s'\n"
+msgstr "ugyldig værdi for »CleanMethod«: »%s«\n"
+
+#, c-format
+msgid ""
+"config file %s, line %d: directive '%s' in section '%s' not recognized.\n"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "config file %s, line %d: directive '%s' has invalid value '%s'\n"
+msgstr ""
+"konfigurationsfil %s, linje %d: Alle direktiver skal tilhøre et afsnit.\n"
+
+#, c-format
+msgid ""
+"The mirror '%s' contains the $arch variable, but no Architecture is "
+"defined.\n"
+msgstr ""
+"Spejlet »%s« indeholder variablen $arch, men ingen arkitektur er defineret.\n"
+
+#, c-format
+msgid "could not add server URL to database '%s': %s (%s)\n"
+msgstr "kunne ikke tilføje serveradresse til database »%s«: %s (%s)\n"
+
+#, c-format
+msgid "failed to initialize alpm library (%s)\n"
+msgstr "kunne ikke initialisere alpm-bibliotek (%s)\n"
+
+#, c-format
+msgid "problem setting logfile '%s' (%s)\n"
+msgstr "problem med angivelse af logfil »%s« (%s)\n"
+
+#, fuzzy, c-format
+msgid "problem setting gpgdir '%s' (%s)\n"
+msgstr "problem med angivelse af rodmappe »%s« (%s)\n"
+
+#, c-format
+msgid "could not register '%s' database (%s)\n"
+msgstr "kunne ikke registrere databsen »%s« (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not set verify option for database '%s' (%s)\n"
+msgstr "kunne ikke tilføje serveradresse til database »%s«: %s (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not add mirror '%s' to database '%s' (%s)\n"
+msgstr "kunne ikke tilføje serveradresse til database »%s«: %s (%s)\n"
+
+#, c-format
+msgid "config parsing exceeded max recursion depth of %d.\n"
+msgstr ""
+
+#, c-format
+msgid "config file %s could not be read.\n"
+msgstr "konfigurationsfil %s kunne ikke læses.\n"
+
+#, c-format
+msgid "config file %s, line %d: bad section name.\n"
+msgstr "konfigurationsfil %s, linje %d: Ugyldigt afsnitsnavn.\n"
+
+#, c-format
+msgid "config file %s, line %d: syntax error in config file- missing key.\n"
+msgstr ""
+"konfigurationsfil %s, linje %d: Syntaksfejl i konfigurationsfil - manglende "
+"nøgle.\n"
+
+#, c-format
+msgid "config file %s, line %d: All directives must belong to a section.\n"
+msgstr ""
+"konfigurationsfil %s, linje %d: Alle direktiver skal tilhøre et afsnit.\n"
+
+#, c-format
+msgid "config file %s, line %d: directive '%s' needs a value\n"
+msgstr ""
+
+#, c-format
+msgid "no targets specified (use -h for help)\n"
+msgstr "ingen mål angivet (brug -h for hjælp)\n"
+
+#, c-format
+msgid "no install reason specified (use -h for help)\n"
+msgstr ""
+
+#, c-format
+msgid "could not set install reason for package %s (%s)\n"
+msgstr ""
+
+#, c-format
+msgid "%s: install reason has been set to 'installed as dependency'\n"
+msgstr ""
+
+#, c-format
+msgid "%s: install reason has been set to 'explicitly installed'\n"
+msgstr ""
+
+#, c-format
+msgid "Explicitly installed"
+msgstr "Direkte installeret"
+
+#, c-format
+msgid "Installed as a dependency for another package"
+msgstr "Installeret som en afhængighed af en anden pakke"
+
+#, c-format
+msgid "Unknown"
+msgstr "Ukendt"
+
+#, c-format
+msgid "Repository :"
+msgstr "Arkiv :"
+
+#, c-format
+msgid "Name :"
+msgstr "Navn :"
+
+#, c-format
+msgid "Version :"
+msgstr "Version :"
+
+#, c-format
+msgid "URL :"
+msgstr "URL :"
+
+#, c-format
+msgid "Licenses :"
+msgstr "Licenser :"
+
+#, c-format
+msgid "Groups :"
+msgstr "Grupper :"
+
+#, c-format
+msgid "Provides :"
+msgstr "Tilbyder :"
+
+#, c-format
+msgid "Depends On :"
+msgstr "Afhænger af :"
+
+#, c-format
+msgid "Optional Deps :"
+msgstr "Valgfrie arkiver :"
+
+#, c-format
+msgid "Required By :"
+msgstr "Krævet af :"
+
+#, c-format
+msgid "Conflicts With :"
+msgstr "I konflikt med :"
+
+#, c-format
+msgid "Replaces :"
+msgstr "Erstatter :"
+
+#, fuzzy, c-format
+msgid "Download Size : %6.2f %s\n"
+msgstr "Størrelse på overførsel: %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Compressed Size: %6.2f %s\n"
+msgstr "Komprimeret størrelse: %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Installed Size : %6.2f %s\n"
+msgstr "Installeret størrelse: %6.2f K\n"
+
+#, c-format
+msgid "Packager :"
+msgstr "Pakkevedligeh. :"
+
+#, c-format
+msgid "Architecture :"
+msgstr "Arkitektur :"
+
+#, c-format
+msgid "Build Date :"
+msgstr "Kompiler.dato :"
+
+#, c-format
+msgid "Install Date :"
+msgstr "Instal.dato :"
+
+#, c-format
+msgid "Install Reason :"
+msgstr "Installer årsag:"
+
+#, c-format
+msgid "Install Script :"
+msgstr "Installer skr. :"
+
+#, c-format
+msgid "Yes"
+msgstr "Ja"
+
+#, c-format
+msgid "No"
+msgstr "Nej"
+
+#, c-format
+msgid "MD5 Sum :"
+msgstr "MD5-sum :"
+
+#, c-format
+msgid "Description :"
+msgstr "Beskrivelse :"
+
+#, c-format
+msgid "could not calculate checksums for %s\n"
+msgstr "kunne ikke beregne tjeksummer for %s\n"
+
+#, c-format
+msgid "Backup Files:\n"
+msgstr "Lav sikkerhedskopi:\n"
+
+#, c-format
+msgid "(none)\n"
+msgstr "(ingen)\n"
+
+#, c-format
+msgid "no changelog available for '%s'.\n"
+msgstr "ingen ændringslog tilgængelig for »%s«.\n"
+
+#, c-format
+msgid "options"
+msgstr "indstillinger"
+
+#, c-format
+msgid "file(s)"
+msgstr "filer"
+
+#, c-format
+msgid "package(s)"
+msgstr "pakker"
+
+#, c-format
+msgid "usage"
+msgstr "brug"
+
+#, c-format
+msgid "operation"
+msgstr "handling"
+
+#, c-format
+msgid "operations:\n"
+msgstr "handlinger:\n"
+
+#, c-format
+msgid ""
+"\n"
+"use '%s {-h --help}' with an operation for available options\n"
+msgstr ""
+"\n"
+"Brug »%s {-h --help}« sammen med en handling for at se tilgængelige "
+"indstillinger\n"
+
+#, c-format
+msgid ""
+" -c, --cascade remove packages and all packages that depend on them\n"
+msgstr ""
+" -c, --cascade fjern pakker og alle pakker som afhænger af dem\n"
+
+#, c-format
+msgid " -n, --nosave remove configuration files\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -s, --recursive remove unnecessary dependencies\n"
+" (-ss includes explicitly installed dependencies)\n"
+msgstr ""
+
+#, c-format
+msgid " -u, --unneeded remove unneeded packages\n"
+msgstr ""
+
+#, c-format
+msgid " -c, --changelog view the changelog of a package\n"
+msgstr " -c, --changelog vis ændringsloggen for en pakke\n"
+
+#, c-format
+msgid ""
+" -d, --deps list packages installed as dependencies [filter]\n"
+msgstr ""
+" -d, --deps vis pakker installeret som afhængigheder [filter]\n"
+
+#, c-format
+msgid " -e, --explicit list packages explicitly installed [filter]\n"
+msgstr " -e, --explicit vis pakker som eksplicit installeret [filter]\n"
+
+#, c-format
+msgid " -g, --groups view all members of a package group\n"
+msgstr " -g, --groups vis alle medlemmer af en pakkegruppe\n"
+
+#, c-format
+msgid ""
+" -i, --info view package information (-ii for backup files)\n"
+msgstr ""
+" -i, --info vis pakkeinformation (-ii for sikkerhedskopier)\n"
+
+#, c-format
+msgid ""
+" -k, --check check that the files owned by the package(s) are "
+"present\n"
+msgstr " -k, --check tjek at filerne ejet af pakkerne er til stede\n"
+
+#, c-format
+msgid " -l, --list list the contents of the queried package\n"
+msgstr " -l, --list vis indholdet af pakken der er sat i kø\n"
+
+#, c-format
+msgid ""
+" -m, --foreign list installed packages not found in sync db(s) "
+"[filter]\n"
+msgstr ""
+" -m, --foreign vis installerede pakker der ikke blev fundet i sync db"
+"(s) [filter]\n"
+
+#, c-format
+msgid " -o, --owns <file> query the package that owns <file>\n"
+msgstr " -o, --owns <fil> forespørg pakken som ejer <fil>\n"
+
+#, c-format
+msgid " -p, --file <package> query a package file instead of the database\n"
+msgstr " -p, --file <pakke> forespørg en pakkefil i steden for databasen\n"
+
+#, c-format
+msgid " -q, --quiet show less information for query and search\n"
+msgstr ""
+" -q, --quiet vis mindre information for forespørgsel og søgning\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search locally-installed packages for matching "
+"strings\n"
+msgstr ""
+" -s, --search <regulært udtryk> søg i lokalt installerede pakker for ens "
+"strenge\n"
+
+#, c-format
+msgid ""
+" -t, --unrequired list packages not required by any package [filter]\n"
+msgstr ""
+" -t, --unrequired vis pakker som ikke er krævet af andre pakker "
+"[filter]\n"
+
+#, c-format
+msgid " -u, --upgrades list outdated packages [filter]\n"
+msgstr " -u, --upgrades vis uddaterede pakker [filter]\n"
+
+#, c-format
+msgid ""
+" -c, --clean remove old packages from cache directory (-cc for "
+"all)\n"
+msgstr ""
+" -c, --clean fjern gamle pakker fra mellemlagermappe (-cc for "
+"alle)\n"
+
+#, c-format
+msgid " -i, --info view package information\n"
+msgstr " -i, --info vis pakkeinformation\n"
+
+#, c-format
+msgid " -l, --list <repo> view a list of packages in a repo\n"
+msgstr " -l, --list <arkiv> vis en liste over pakker i et arkiv\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search remote repositories for matching strings\n"
+msgstr ""
+" -s, --search <regulært udtryk> søg i eksterne arkiver efter ens strenge\n"
+
+#, c-format
+msgid ""
+" -u, --sysupgrade upgrade installed packages (-uu allows downgrade)\n"
+msgstr ""
+" -u, --sysupgrade opgrader installerede pakker (-uu tillader "
+"nedgradering)\n"
+
+#, c-format
+msgid ""
+" -w, --downloadonly download packages but do not install/upgrade "
+"anything\n"
+msgstr ""
+" -w, --downloadonly hent pakker men installer ikke eller opgrader ikke "
+"noget\n"
+
+#, c-format
+msgid ""
+" -y, --refresh download fresh package databases from the server\n"
+msgstr " -y, --refresh hent friske pakkedatabaser fra serveren\n"
+
+#, c-format
+msgid " --needed don't reinstall up to date packages\n"
+msgstr ""
+" --needed geninstaller ikke pakker der er opdateret til dags "
+"dato\n"
+
+#, c-format
+msgid " --asdeps mark packages as non-explicitly installed\n"
+msgstr " --asdeps marker pakker som ikkeeksplicit installeret\n"
+
+#, c-format
+msgid " --asexplicit mark packages as explicitly installed\n"
+msgstr " --asexplicit marker pakker som eksplicit installeret\n"
+
+#, c-format
+msgid " -f, --force force install, overwrite conflicting files\n"
+msgstr ""
+" -f, --force tvungen installation, overskriv filer i konflikt\n"
+
+#, c-format
+msgid " --asdeps install packages as non-explicitly installed\n"
+msgstr ""
+" --asdeps installer pakker så de fremstår som værende "
+"ikkeeksplicit installeret\n"
+
+#, c-format
+msgid " --asexplicit install packages as explicitly installed\n"
+msgstr ""
+" --asexplicit installer pakker som værende eksplicit installerede\n"
+
+#, c-format
+msgid ""
+" --ignore <pkg> ignore a package upgrade (can be used more than "
+"once)\n"
+msgstr ""
+" --ignore <pakke> ignorer en pakkeopgradering (kan bruges mere end en "
+"gang)\n"
+
+#, c-format
+msgid ""
+" --ignoregroup <grp>\n"
+" ignore a group upgrade (can be used more than once)\n"
+msgstr ""
+" --ignoregroup <gruppe>\n"
+" ignorer en gruppeopgradering (kan bruges mere end en "
+"gang)\n"
+
+#, c-format
+msgid ""
+" -d, --nodeps skip dependency version checks (-dd to skip all "
+"checks)\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -k, --dbonly only modify database entries, not package files\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" --noprogressbar do not show a progress bar when downloading files\n"
+msgstr " --noprogressbar vis ikke en statusbjælke når der hentes filer\n"
+
+#, c-format
+msgid ""
+" --noscriptlet do not execute the install scriptlet if one exists\n"
+msgstr ""
+" --noscriptlet kør ikke installationsskriplet hvis en sådan findes\n"
+
+#, c-format
+msgid ""
+" --print print the targets instead of performing the "
+"operation\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" --print-format <string>\n"
+" specify how the targets should be printed\n"
+msgstr ""
+" --print-format <string>\n"
+" angiv hvordan målene skal vises\n"
+
+#, c-format
+msgid " -b, --dbpath <path> set an alternate database location\n"
+msgstr " -b, --dbpath <sti> angiv en altternativ databaseplacering\n"
+
+#, c-format
+msgid " -r, --root <path> set an alternate installation root\n"
+msgstr " -r, --root <sti> angiv en alternativ installationsrod\n"
+
+#, c-format
+msgid " -v, --verbose be verbose\n"
+msgstr " -v, --verbose vær uddybende\n"
+
+#, c-format
+msgid " --arch <arch> set an alternate architecture\n"
+msgstr " --arch <arkit.> angiv en alternativ arkitektur\n"
+
+#, c-format
+msgid " --cachedir <dir> set an alternate package cache location\n"
+msgstr ""
+" --cachedir <mappe> angiv en alternativ pakkemellemlagerplacering\n"
+
+#, c-format
+msgid " --config <path> set an alternate configuration file\n"
+msgstr " --config <sti> angiv en alternativ konfigurationsfil\n"
+
+#, c-format
+msgid " --debug display debug messages\n"
+msgstr " --debug vis fejlsøgningsbeskeder\n"
+
+#, fuzzy, c-format
+msgid " --gpgdir <path> set an alternate home directory for GnuPG\n"
+msgstr " --logfile <sti> angiv en alternativ logfil\n"
+
+#, c-format
+msgid " --logfile <path> set an alternate log file\n"
+msgstr " --logfile <sti> angiv en alternativ logfil\n"
+
+#, c-format
+msgid " --noconfirm do not ask for any confirmation\n"
+msgstr " --noconfirm sprøg ikke om bekræftelser\n"
+
+#, c-format
+msgid ""
+" This program may be freely redistributed under\n"
+" the terms of the GNU General Public License.\n"
+msgstr ""
+" Dette program kan frit videredistribueres under\n"
+" betingelserne i GNU General Public License.\n"
+
+#, c-format
+msgid "'%s' is not a valid debug level\n"
+msgstr "»%s« er ikke et gyldigt fejlsøgningsniveau\n"
+
+#, c-format
+msgid "only one operation may be used at a time\n"
+msgstr "kun en handling kan udføres ad gangen\n"
+
+#, c-format
+msgid "invalid option\n"
+msgstr ""
+
+#, c-format
+msgid "buffer overflow detected in arg parsing\n"
+msgstr ""
+
+#, c-format
+msgid "failed to reopen stdin for reading: (%s)\n"
+msgstr ""
+
+#, c-format
+msgid "you cannot perform this operation unless you are root.\n"
+msgstr ""
+"du kan ikke udføre denne handling med mindre du er administrator (root).\n"
+
+#, c-format
+msgid "no operation specified (use -h for help)\n"
+msgstr "ingen handling angivet (brug -h for hjælp)\n"
+
+#, c-format
+msgid "%s is owned by %s %s\n"
+msgstr "%s er ejet af %s %s\n"
+
+#, c-format
+msgid "no file was specified for --owns\n"
+msgstr "ingen fil var angivet for -owns\n"
+
+#, c-format
+msgid "failed to find '%s' in PATH: %s\n"
+msgstr "kunne ikke finde »%s« i STI: %s\n"
+
+#, c-format
+msgid "failed to read file '%s': %s\n"
+msgstr "kunne ikke læse fil »%s«: %s\n"
+
+#, c-format
+msgid "cannot determine ownership of directory '%s'\n"
+msgstr ""
+
+#, c-format
+msgid "cannot determine real path for '%s': %s\n"
+msgstr "kan ikke bestemme reel sti for »%s«: %s\n"
+
+#, c-format
+msgid "path too long: %s%s\n"
+msgstr ""
+
+#, c-format
+msgid "No package owns %s\n"
+msgstr "Ingen pakke ejer %s\n"
+
+#, c-format
+msgid "group \"%s\" was not found\n"
+msgstr "gruppe »%s« blev ikke fundet\n"
+
+#, c-format
+msgid "%s: %d total file, "
+msgid_plural "%s: %d total files, "
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "%d missing file\n"
+msgid_plural "%d missing files\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "no usable package repositories configured.\n"
+msgstr "ingen brugbare pakkearkiver er konfigureret.\n"
+
+#, c-format
+msgid "package \"%s\" not found\n"
+msgstr "pakke »%s« er ikke fundet\n"
+
+#, c-format
+msgid "failed to prepare transaction (%s)\n"
+msgstr "kunne ikke forberede transaktion (%s)\n"
+
+#, c-format
+msgid ":: package %s does not have a valid architecture\n"
+msgstr ":: pakke %s har ikke en gyldig arkitektur\n"
+
+#, c-format
+msgid ":: %s: requires %s\n"
+msgstr ":: %s: kræver %s\n"
+
+#, c-format
+msgid "%s is designated as a HoldPkg.\n"
+msgstr "%s er designet som en HoldPkg.\n"
+
+#, c-format
+msgid "HoldPkg was found in target list. Do you want to continue?"
+msgstr "HoldPkg blev fundet i målliste. Ønsker du at fortsætte?"
+
+#, c-format
+msgid " there is nothing to do\n"
+msgstr " der er intet at udføre\n"
+
+#, c-format
+msgid "Do you want to remove these packages?"
+msgstr "Ønsker du at fjerne disse pakker?"
+
+#, c-format
+msgid "failed to commit transaction (%s)\n"
+msgstr "kunne ikke indsende (commit) transaktion (%s)\n"
+
+#, c-format
+msgid "could not access database directory\n"
+msgstr "kunne ikke tilgå databasemappe\n"
+
+#, c-format
+msgid "could not remove %s\n"
+msgstr ""
+
+#, c-format
+msgid "Do you want to remove %s?"
+msgstr "Ønsker du at fjerne %s?"
+
+#, c-format
+msgid "Database directory: %s\n"
+msgstr "Databasemappe: %s\n"
+
+#, c-format
+msgid "Do you want to remove unused repositories?"
+msgstr "Ønsker du at fjerne ubrugt arkiver?"
+
+#, c-format
+msgid "Database directory cleaned up\n"
+msgstr "Databasemappe ryddes op\n"
+
+#, c-format
+msgid "Cache directory: %s\n"
+msgstr "Mappe for mellemlager: %s\n"
+
+#, c-format
+msgid "Packages to keep:\n"
+msgstr ""
+
+#, c-format
+msgid " All locally installed packages\n"
+msgstr ""
+
+#, c-format
+msgid " All current sync database packages\n"
+msgstr ""
+
+#, c-format
+msgid "Do you want to remove all other packages from cache?"
+msgstr ""
+
+#, c-format
+msgid "removing old packages from cache...\n"
+msgstr "fjerne gamle pakker fra mellemlager...\n"
+
+#, c-format
+msgid "Do you want to remove ALL files from cache?"
+msgstr "Ønsker du at fjerne ALLE filer fra mellemlager?"
+
+#, c-format
+msgid "removing all files from cache...\n"
+msgstr "fjerner alle filer fra mellemlager...\n"
+
+#, c-format
+msgid "could not access cache directory %s\n"
+msgstr "kunne ikke tilgå mellemlagermappe %s\n"
+
+#, c-format
+msgid "File %s does not seem to be a valid package, remove it?"
+msgstr "Fil %s ser ikke ud til at være en gyldig pakke. Skal den fjernes?"
+
+#, c-format
+msgid "failed to update %s (%s)\n"
+msgstr "Kunne ikke opdatere %s(%s)\n"
+
+#, c-format
+msgid " %s is up to date\n"
+msgstr " %s er opdateret\n"
+
+#, c-format
+msgid "failed to synchronize any databases\n"
+msgstr "kunne ikke synkronisere databaser\n"
+
+#, c-format
+msgid "installed"
+msgstr "installeret"
+
+#, c-format
+msgid "repository '%s' does not exist\n"
+msgstr "arkiv »%s« findes ikke\n"
+
+#, c-format
+msgid "package '%s' was not found in repository '%s'\n"
+msgstr "pakke »%s« blev ikke fundet i arkiv »%s«\n"
+
+#, c-format
+msgid "package '%s' was not found\n"
+msgstr "pakke »%s« blev ikke fundet\n"
+
+#, c-format
+msgid "repository \"%s\" was not found.\n"
+msgstr "arkiv »%s« blev ikke fundet.\n"
+
+#, c-format
+msgid "skipping target: %s\n"
+msgstr "springer mål over: %s\n"
+
+#, c-format
+msgid "target not found: %s\n"
+msgstr ""
+
+#, c-format
+msgid ":: There are %d members in group %s:\n"
+msgstr ""
+
+#, c-format
+msgid "database not found: %s\n"
+msgstr ""
+
+#, c-format
+msgid ":: Starting full system upgrade...\n"
+msgstr ":: Starter fuld systemopgradering...\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict\n"
+msgstr ":: %s og %s er i konflikt\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s)\n"
+msgstr ":: %s og %s er i konflikt (%s)\n"
+
+#, c-format
+msgid "Proceed with download?"
+msgstr "Fortsæt med hentning?"
+
+#, c-format
+msgid "Proceed with installation?"
+msgstr "Fortsæt med installation?"
+
+#, c-format
+msgid "%s exists in both '%s' and '%s'\n"
+msgstr "%s findes i både »%s« og »%s«\n"
+
+#, c-format
+msgid "%s: %s exists in filesystem\n"
+msgstr "%s: %s findes i filsystem\n"
+
+#, c-format
+msgid "%s is invalid or corrupted\n"
+msgstr "%s er ugyldig eller ødelagt\n"
+
+#, c-format
+msgid "Errors occurred, no packages were upgraded.\n"
+msgstr "Der opstod fejl, ingen pakker blev opgraderet.\n"
+
+#, c-format
+msgid ":: Synchronizing package databases...\n"
+msgstr ":: Synkroniserer pakkedatabaser...\n"
+
+#, c-format
+msgid ":: The following packages should be upgraded first :\n"
+msgstr ":: De følgende pakker skal opgraderes først:\n"
+
+#, c-format
+msgid ""
+":: Do you want to cancel the current operation\n"
+":: and upgrade these packages now?"
+msgstr ""
+":: Ønsker du at afbryde den aktuelle handling\n"
+":: og opgradere disse pakker nu?"
+
+#, c-format
+msgid "failed to init transaction (%s)\n"
+msgstr "kunne ikke initialisere transaktion (%s)\n"
+
+#, c-format
+msgid ""
+" if you're sure a package manager is not already\n"
+" running, you can remove %s\n"
+msgstr ""
+" hvis du er sikker på at en pakkehåndtering ikke \n"
+" allerede kører, kan du fjerne %s\n"
+
+#, c-format
+msgid " try running pacman-db-upgrade\n"
+msgstr ""
+
+#, c-format
+msgid "failed to release transaction (%s)\n"
+msgstr "kunne ikke frigive transaktion (%s)\n"
+
+#, c-format
+msgid "None"
+msgstr "Ingen"
+
+#, c-format
+msgid "insufficient columns available for table display\n"
+msgstr ""
+
+#, c-format
+msgid "Name"
+msgstr ""
+
+#, c-format
+msgid "Old Version"
+msgstr ""
+
+#, c-format
+msgid "New Version"
+msgstr ""
+
+#, c-format
+msgid "Size"
+msgstr ""
+
+#, c-format
+msgid "Targets (%d):"
+msgstr "Mål (%d):"
+
+#, c-format
+msgid "Remove (%d):"
+msgstr "Fjern (%d):"
+
+#, fuzzy, c-format
+msgid "Total Download Size: %.2f %s\n"
+msgstr "Samlet overførselsstørrelse: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Installed Size: %.2f %s\n"
+msgstr "Samlet installationsstørrelse: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Net Upgrade Size: %.2f %s\n"
+msgstr "Samlet overførselsstørrelse: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Removed Size: %.2f %s\n"
+msgstr "Samlet fjernet størrelse: %.2f MB\n"
+
+#, c-format
+msgid "New optional dependencies for %s\n"
+msgstr "Nye valgfrie afhængigheder for %s\n"
+
+#, c-format
+msgid "Optional dependencies for %s\n"
+msgstr "Valgfrie afhængigheder for %s\n"
+
+#, c-format
+msgid "Repository %s\n"
+msgstr ""
+
+#, c-format
+msgid "Invalid value: %d is not between %d and %d\n"
+msgstr ""
+
+#, c-format
+msgid "Invalid number: %s\n"
+msgstr ""
+
+#, c-format
+msgid "Enter a selection (default=all)"
+msgstr ""
+
+#, c-format
+msgid "Enter a number (default=%d)"
+msgstr ""
+
+#, c-format
+msgid "[Y/n]"
+msgstr "[J/n]"
+
+#, c-format
+msgid "[y/N]"
+msgstr "[j/N]"
+
+#, c-format
+msgid "Y"
+msgstr "J"
+
+#, c-format
+msgid "YES"
+msgstr "JA"
+
+#, c-format
+msgid "N"
+msgstr "N"
+
+#, c-format
+msgid "NO"
+msgstr "NEJ"
+
+#, c-format
+msgid "failed to allocate string\n"
+msgstr ""
+
+#, c-format
+msgid "error: %s"
+msgstr "fejl: %s"
+
+#, c-format
+msgid "warning: %s"
+msgstr "advarsel: %s"
+
+#, c-format
+msgid "error: "
+msgstr "fejl: "
+
+#, c-format
+msgid "warning: "
+msgstr "advarsel: "
+
diff --git a/src/pacman/po/de.po b/src/pacman/po/de.po
new file mode 100644
index 00000000..78bf77b6
--- /dev/null
+++ b/src/pacman/po/de.po
@@ -0,0 +1,1153 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Pacman Development Team <pacman-dev@archlinux.org>
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Arch Linux Pacman package manager\n"
+"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
+"POT-Creation-Date: 2011-06-23 21:59-0500\n"
+"PO-Revision-Date: 2011-04-28 09:05+0000\n"
+"Last-Translator: Mineo <themineo+transifex@googlemail.com>\n"
+"Language-Team: German <None>\n"
+"Language: de\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"
+
+#, c-format
+msgid "checking dependencies...\n"
+msgstr "Prüfe Abhängigkeiten...\n"
+
+#, c-format
+msgid "checking for file conflicts...\n"
+msgstr "Prüfe auf Dateikonflikte...\n"
+
+#, c-format
+msgid "resolving dependencies...\n"
+msgstr "Löse Abhängigkeiten auf...\n"
+
+#, c-format
+msgid "looking for inter-conflicts...\n"
+msgstr "Suche nach Zwischenkonflikten...\n"
+
+#, c-format
+msgid "installing %s...\n"
+msgstr "Installiere %s...\n"
+
+#, c-format
+msgid "removing %s...\n"
+msgstr "Entferne %s...\n"
+
+#, c-format
+msgid "upgrading %s...\n"
+msgstr "Aktualisiere %s...\n"
+
+#, c-format
+msgid "checking package integrity...\n"
+msgstr "Prüfe Paketintegrität...\n"
+
+#, c-format
+msgid "checking delta integrity...\n"
+msgstr "Prüfe Integrität des Deltas...\n"
+
+#, c-format
+msgid "applying deltas...\n"
+msgstr "Wende Deltas an....\n"
+
+#, c-format
+msgid "generating %s with %s... "
+msgstr "Erstelle %s mit %s... "
+
+#, c-format
+msgid "success!\n"
+msgstr "Erfolgreich!\n"
+
+#, c-format
+msgid "failed.\n"
+msgstr "fehlgeschlagen.\n"
+
+#, c-format
+msgid ":: Retrieving packages from %s...\n"
+msgstr ":: Empfange Pakete von %s...\n"
+
+#, c-format
+msgid "checking available disk space...\n"
+msgstr "Überprüfe verfügbaren Platz auf der Festplatte ...\n"
+
+#, c-format
+msgid ":: %s is in IgnorePkg/IgnoreGroup. Install anyway?"
+msgstr ":: %s ist in IgnorePkg/IgnoreGroup. Trotzdem installieren?"
+
+#, c-format
+msgid ":: Replace %s with %s/%s?"
+msgstr ":: %s durch %s/%s ersetzen?"
+
+#, c-format
+msgid ":: %s and %s are in conflict. Remove %s?"
+msgstr ":: %s und %s stehen miteinander in Konflikt. %s entfernen?"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s). Remove %s?"
+msgstr ":: %s und %s stehen miteinander in Konflikt (%s). %s entfernen?"
+
+#, c-format
+msgid ""
+":: The following package cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgid_plural ""
+":: The following packages cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgstr[0] ""
+":: Das folgende Paket kann aufgrund nicht-auflösbarer Abhängigkeiten nicht "
+"aktualisiert werden:\n"
+msgstr[1] ""
+":: Die folgenden Pakete können aufgrund nicht-auflösbarer Abhängigkeiten "
+"nicht aktualisiert werden:\n"
+
+#, c-format
+msgid "Do you want to skip the above package for this upgrade?"
+msgid_plural "Do you want to skip the above packages for this upgrade?"
+msgstr[0] ""
+"Möchten Sie das obengenannte Paket bei dieser Aktualisierung überspringen?"
+msgstr[1] ""
+"Möchten Sie die obengenannten Pakete bei dieser Aktualisierung überspringen?"
+
+#, c-format
+msgid ":: There are %d providers available for %s:\n"
+msgstr ":: Es gibt %d-Provider für %s:\n"
+
+#, c-format
+msgid ":: %s-%s: local version is newer. Upgrade anyway?"
+msgstr ":: %s-%s: Lokale Version ist neuer. Trotzdem aktualisieren? "
+
+#, c-format
+msgid ":: File %s is corrupted. Do you want to delete it?"
+msgstr ":: Die Datei %s ist beschädigt. Möchten Sie sie löschen?"
+
+#, c-format
+msgid "installing"
+msgstr "Installiere"
+
+#, c-format
+msgid "upgrading"
+msgstr "Aktualisiere"
+
+#, c-format
+msgid "removing"
+msgstr "Entferne"
+
+#, c-format
+msgid "checking for file conflicts"
+msgstr "Prüfe auf Dateikonflikte"
+
+#, c-format
+msgid "checking available disk space"
+msgstr "Überprüfe verfügbaren Festplattenspeicher"
+
+#, c-format
+msgid "checking package integrity"
+msgstr "Überprüfe Paket-Integrität"
+
+#, c-format
+msgid "downloading %s...\n"
+msgstr "lade %s herunter...\n"
+
+#, c-format
+msgid "malloc failure: could not allocate %zd bytes\n"
+msgstr "malloc-Fehler: Konnte %zd Bytes nicht zuweisen\n"
+
+#, c-format
+msgid "could not get current working directory\n"
+msgstr "Konnte das derzeit gültige Arbeitsverzeichnis nicht erreichen\n"
+
+#, c-format
+msgid "could not chdir to download directory %s\n"
+msgstr "chdir in neues Download-Verzeichnis %s fehlgeschlagen\n"
+
+#, c-format
+msgid "running XferCommand: fork failed!\n"
+msgstr "Verwende XferCommand: Fork fehlgeschlagen!\n"
+
+#, c-format
+msgid "could not change directory to %s (%s)\n"
+msgstr "Konnte nicht in Verzeichnis %s wechseln(%s)\n"
+
+#, c-format
+msgid "invalid value for 'CleanMethod' : '%s'\n"
+msgstr "Ungültiger Wert für 'CleanMethod' : '%s'\n"
+
+#, c-format
+msgid ""
+"config file %s, line %d: directive '%s' in section '%s' not recognized.\n"
+msgstr ""
+"Konfigurations-Datei %s, Zeile %d: Direktive '%s in Sektion '%s' wird nicht "
+"erkannt.\n"
+
+#, fuzzy, c-format
+msgid "config file %s, line %d: directive '%s' has invalid value '%s'\n"
+msgstr ""
+"Konfigurations-Datei %s, Zeile %d: Direktive '%s' verlangt einen Wert.\n"
+
+#, c-format
+msgid ""
+"The mirror '%s' contains the $arch variable, but no Architecture is "
+"defined.\n"
+msgstr ""
+"Der Spiegel '%s' enthält die Variable $arch, doch ist keine Architektur "
+"definiert.\n"
+
+#, c-format
+msgid "could not add server URL to database '%s': %s (%s)\n"
+msgstr "Konnte die Server-URL nicht der Datenbank '%s' hinzufügen: %s (%s)\n"
+
+#, c-format
+msgid "failed to initialize alpm library (%s)\n"
+msgstr "Konnte alpm-Bibliothek nicht initialisieren (%s)\n"
+
+#, c-format
+msgid "problem setting logfile '%s' (%s)\n"
+msgstr "Problem beim Setzen der Log-Datei '%s' (%s)\n"
+
+#, fuzzy, c-format
+msgid "problem setting gpgdir '%s' (%s)\n"
+msgstr "Problem beim Setzen des Root-Verzeichnisses '%s' (%s)\n"
+
+#, c-format
+msgid "could not register '%s' database (%s)\n"
+msgstr "Kein Zugriff auf die Datenbank '%s' (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not set verify option for database '%s' (%s)\n"
+msgstr "Konnte die Server-URL nicht der Datenbank '%s' hinzufügen: %s (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not add mirror '%s' to database '%s' (%s)\n"
+msgstr "Konnte die Server-URL nicht der Datenbank '%s' hinzufügen: %s (%s)\n"
+
+#, c-format
+msgid "config parsing exceeded max recursion depth of %d.\n"
+msgstr ""
+
+#, c-format
+msgid "config file %s could not be read.\n"
+msgstr "Konfigurations-Datei %s konnte nicht gelesen werden.\n"
+
+#, c-format
+msgid "config file %s, line %d: bad section name.\n"
+msgstr "Konfigurations-Datei %s, Zeile %d: Schlechter Sektions-Name.\n"
+
+#, c-format
+msgid "config file %s, line %d: syntax error in config file- missing key.\n"
+msgstr ""
+"Konfigurations-Datei %s, Zeile %d: Syntax-Fehler in der Datei - fehlender "
+"Schlüssel.\n"
+
+#, c-format
+msgid "config file %s, line %d: All directives must belong to a section.\n"
+msgstr ""
+"Konfigurations-Datei %s, Zeile %d: Alle Direktiven müssen zu einer Sektion "
+"gehören.\n"
+
+#, c-format
+msgid "config file %s, line %d: directive '%s' needs a value\n"
+msgstr ""
+"Konfigurations-Datei %s, Zeile %d: Direktive '%s' verlangt einen Wert.\n"
+
+#, c-format
+msgid "no targets specified (use -h for help)\n"
+msgstr "Keine Ziel-Dateien spezifiziert (benutzen Sie -h für Hilfe)\n"
+
+#, c-format
+msgid "no install reason specified (use -h for help)\n"
+msgstr "Kein Installations-Grund angegeben (Nutzen Sie -h für Hilfe)\n"
+
+#, c-format
+msgid "could not set install reason for package %s (%s)\n"
+msgstr "Konnte den Installations-Grund für %s nicht festsetzen (%s)\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'installed as dependency'\n"
+msgstr ""
+"%s: Installations-Grund wurde auf \"Installiert als Abhängigkeit\" gesetzt\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'explicitly installed'\n"
+msgstr ""
+"%s: Installations-Grund wurde auf \"Ausdrücklich installiert\" gesetzt\n"
+
+#, c-format
+msgid "Explicitly installed"
+msgstr "Ausdrücklich installiert"
+
+#, c-format
+msgid "Installed as a dependency for another package"
+msgstr "Installiert als Abhängigkeit für ein anderes Paket"
+
+#, c-format
+msgid "Unknown"
+msgstr "Unbekannt"
+
+#, c-format
+msgid "Repository :"
+msgstr "Repositorium :"
+
+#, c-format
+msgid "Name :"
+msgstr "Name :"
+
+#, c-format
+msgid "Version :"
+msgstr "Version :"
+
+#, c-format
+msgid "URL :"
+msgstr "URL :"
+
+#, c-format
+msgid "Licenses :"
+msgstr "Lizenzen :"
+
+#, c-format
+msgid "Groups :"
+msgstr "Gruppen :"
+
+#, c-format
+msgid "Provides :"
+msgstr "Stellt bereit :"
+
+#, c-format
+msgid "Depends On :"
+msgstr "Hängt ab von :"
+
+#, c-format
+msgid "Optional Deps :"
+msgstr "Optionale Abhängigkeiten:"
+
+#, c-format
+msgid "Required By :"
+msgstr "Benötigt von :"
+
+#, c-format
+msgid "Conflicts With :"
+msgstr "Konflikt mit :"
+
+#, c-format
+msgid "Replaces :"
+msgstr "Ersetzt :"
+
+#, fuzzy, c-format
+msgid "Download Size : %6.2f %s\n"
+msgstr "Download-Größe : %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Compressed Size: %6.2f %s\n"
+msgstr "Komprimierte Größe : %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Installed Size : %6.2f %s\n"
+msgstr "Installationsgröße : %6.2f K\n"
+
+#, c-format
+msgid "Packager :"
+msgstr "Packer :"
+
+#, c-format
+msgid "Architecture :"
+msgstr "Architektur :"
+
+#, c-format
+msgid "Build Date :"
+msgstr "Erstellt am :"
+
+#, c-format
+msgid "Install Date :"
+msgstr "Installiert am :"
+
+#, c-format
+msgid "Install Reason :"
+msgstr "Installationsgrund :"
+
+#, c-format
+msgid "Install Script :"
+msgstr "Installations-Skript :"
+
+#, c-format
+msgid "Yes"
+msgstr "Ja"
+
+#, c-format
+msgid "No"
+msgstr "Nein"
+
+#, c-format
+msgid "MD5 Sum :"
+msgstr "MD5-Summe :"
+
+#, c-format
+msgid "Description :"
+msgstr "Beschreibung :"
+
+#, c-format
+msgid "could not calculate checksums for %s\n"
+msgstr "Konnte die Prüfsummen für %s nicht errechnen\n"
+
+#, c-format
+msgid "Backup Files:\n"
+msgstr "Sicherungs-Dateien:\n"
+
+#, c-format
+msgid "(none)\n"
+msgstr "(Nichts)\n"
+
+#, c-format
+msgid "no changelog available for '%s'.\n"
+msgstr "Kein Änderungsprotokoll für '%s' verfügbar.\n"
+
+#, c-format
+msgid "options"
+msgstr "Optionen"
+
+#, c-format
+msgid "file(s)"
+msgstr "Datei(en)"
+
+#, c-format
+msgid "package(s)"
+msgstr "Paket(e)"
+
+#, c-format
+msgid "usage"
+msgstr "Verwendung"
+
+#, c-format
+msgid "operation"
+msgstr "Operation"
+
+#, c-format
+msgid "operations:\n"
+msgstr "Operationen:\n"
+
+#, c-format
+msgid ""
+"\n"
+"use '%s {-h --help}' with an operation for available options\n"
+msgstr ""
+"\n"
+"Benutzen Sie '%s {-h --help}' zusammen mit einer Operation für verfügbare "
+"Optionen\n"
+
+#, c-format
+msgid ""
+" -c, --cascade remove packages and all packages that depend on them\n"
+msgstr ""
+" -c, --cascade Entfernt Pakete und alle, die von ihnen abhängen\n"
+
+#, c-format
+msgid " -n, --nosave remove configuration files\n"
+msgstr " -n, --nosave auch Konfigurationsdateien entfernen\n"
+
+#, c-format
+msgid ""
+" -s, --recursive remove unnecessary dependencies\n"
+" (-ss includes explicitly installed dependencies)\n"
+msgstr ""
+" -s, --recursive entfernt unnötige Abhängigkeiten\n"
+" (-ss auch explizit installierte Abhängigkeiten "
+"entfernen)\n"
+"\n"
+
+#, c-format
+msgid " -u, --unneeded remove unneeded packages\n"
+msgstr " -u, --unneeded entfernt unnötige Pakete\n"
+
+#, c-format
+msgid " -c, --changelog view the changelog of a package\n"
+msgstr " -c, --changelog Das Änderungsprotokoll des Paketes anzeigen\n"
+
+#, c-format
+msgid ""
+" -d, --deps list packages installed as dependencies [filter]\n"
+msgstr ""
+" -d, --deps Zeigt Pakete an, die als Abhängigkeiten installiert "
+"wurden [Filter]\n"
+
+#, c-format
+msgid " -e, --explicit list packages explicitly installed [filter]\n"
+msgstr ""
+" -e, --explicit Zeigt Pakete an, die ausdrücklich installiert wurden "
+"[Filter]\n"
+
+#, c-format
+msgid " -g, --groups view all members of a package group\n"
+msgstr " -g, --groups Zeigt alle Mitglieder einer Paket-Gruppe an\n"
+
+#, c-format
+msgid ""
+" -i, --info view package information (-ii for backup files)\n"
+msgstr ""
+" -i, --info Zeigt Paketinformationen an (-ii für Sicherungs-"
+"Dateien)\n"
+
+#, c-format
+msgid ""
+" -k, --check check that the files owned by the package(s) are "
+"present\n"
+msgstr ""
+" -k, --check Überprüfe, ob die zu den Paketen gehörenden Dateien "
+"vorhanden sind\n"
+
+#, c-format
+msgid " -l, --list list the contents of the queried package\n"
+msgstr " -l, --list Zeigt den Inhalt des abgefragten Paketes an\n"
+
+#, c-format
+msgid ""
+" -m, --foreign list installed packages not found in sync db(s) "
+"[filter]\n"
+msgstr ""
+" -m, --foreign Zeigt installierte Pakete an, die nicht in den Sync-db"
+"(s) gefunden wurden [Filter]\n"
+
+#, c-format
+msgid " -o, --owns <file> query the package that owns <file>\n"
+msgstr " -o, --owns <Datei> Fragt das Paket ab, das <Datei> enthält\n"
+
+#, c-format
+msgid " -p, --file <package> query a package file instead of the database\n"
+msgstr ""
+" -p, --file <Paket> Fragt eine Paketdatei anstatt der Datenbank ab\n"
+
+#, c-format
+msgid " -q, --quiet show less information for query and search\n"
+msgstr ""
+" -q, --quiet zeigt weniger Information bei Abfragen und Suche an \n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search locally-installed packages for matching "
+"strings\n"
+msgstr ""
+" -s, --search <regex> Durchsucht lokal installierte Pakete nach einem Wort\n"
+
+#, c-format
+msgid ""
+" -t, --unrequired list packages not required by any package [filter]\n"
+msgstr ""
+" -t, --unrequired Zeigt Pakete an, die nicht von anderen benötigt "
+"werden [Filter]\n"
+
+#, c-format
+msgid " -u, --upgrades list outdated packages [filter]\n"
+msgstr " -u, --upgrades Zeigt aktualisierbare Pakete an [Filter]\n"
+
+#, c-format
+msgid ""
+" -c, --clean remove old packages from cache directory (-cc for "
+"all)\n"
+msgstr ""
+" -c, --clean Entfernt alte Pakete aus dem Paketpuffer(-cc für "
+"alle)\n"
+
+#, c-format
+msgid " -i, --info view package information\n"
+msgstr " -i, --info Zeigt Paketinformationen an\n"
+
+#, c-format
+msgid " -l, --list <repo> view a list of packages in a repo\n"
+msgstr ""
+" -l, --list <repo> Zeigt eine Liste aller Pakete eines Repositoriums an\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search remote repositories for matching strings\n"
+msgstr ""
+" -s, --search <regex> Durchsucht entfernte Repositorien nach einem Wort\n"
+
+#, c-format
+msgid ""
+" -u, --sysupgrade upgrade installed packages (-uu allows downgrade)\n"
+msgstr ""
+" -u, --sysupgrade Aktualisiert installierte Pakete (-uu ermöglicht "
+"Downgrades)\n"
+
+#, c-format
+msgid ""
+" -w, --downloadonly download packages but do not install/upgrade "
+"anything\n"
+msgstr ""
+" -w, --downloadonly Lädt Pakete herunter, ohne etwas zu installieren "
+"oder\n"
+" aktualisieren\n"
+
+#, c-format
+msgid ""
+" -y, --refresh download fresh package databases from the server\n"
+msgstr " -y, --refresh Lädt frische Paketdatenbanken vom Server\n"
+
+#, c-format
+msgid " --needed don't reinstall up to date packages\n"
+msgstr ""
+" --needed aktuelle Pakete werden nicht nochmals installiert\n"
+
+#, c-format
+msgid " --asdeps mark packages as non-explicitly installed\n"
+msgstr ""
+" --asdeps Markiert Pakete als nicht-ausdrücklich installiert\n"
+
+#, c-format
+msgid " --asexplicit mark packages as explicitly installed\n"
+msgstr " --asexplicit Markiert Pakete als ausdrücklich installiert\n"
+
+#, c-format
+msgid " -f, --force force install, overwrite conflicting files\n"
+msgstr ""
+" -f, --force Installation erzwingen, Dateikonflikte überschreiben\n"
+
+#, c-format
+msgid " --asdeps install packages as non-explicitly installed\n"
+msgstr ""
+" --asdeps Installiert Pakete als nicht-ausdrücklich "
+"installiert\n"
+
+#, c-format
+msgid " --asexplicit install packages as explicitly installed\n"
+msgstr ""
+" --asexplicit Installiert Pakete als ausdrücklich installiert\n"
+
+#, c-format
+msgid ""
+" --ignore <pkg> ignore a package upgrade (can be used more than "
+"once)\n"
+msgstr ""
+" --ignore <pkg> Ignoriert ein neues Paket (kann mehrfach genutzt "
+"werden)\n"
+
+#, c-format
+msgid ""
+" --ignoregroup <grp>\n"
+" ignore a group upgrade (can be used more than once)\n"
+msgstr ""
+" --ignoregroup <grp>\n"
+" Ignoriert Upgrade einer Gruppe (kann mehrfach genutzt "
+"werden)\n"
+
+#, c-format
+msgid ""
+" -d, --nodeps skip dependency version checks (-dd to skip all "
+"checks)\n"
+msgstr ""
+" -d, --nodeps überspringt die Versionsüberprüfungen für "
+"Abhängigkeiten (-dd um alle Überprüfungen zu überspringen)\n"
+
+#, c-format
+msgid ""
+" -k, --dbonly only modify database entries, not package files\n"
+msgstr ""
+" -k, --dbonly Nur Datenbank-Einträge modifizieren, keine "
+"Paketdateien\n"
+
+#, c-format
+msgid ""
+" --noprogressbar do not show a progress bar when downloading files\n"
+msgstr ""
+" --noprogressbar Keine Fortschrittsanzeige anzeigen, wenn Dateien "
+"heruntergeladen werden\n"
+
+#, c-format
+msgid ""
+" --noscriptlet do not execute the install scriptlet if one exists\n"
+msgstr ""
+" --noscriptlet Installationsskript nicht ausführen, falls vorhanden\n"
+
+#, c-format
+msgid ""
+" --print print the targets instead of performing the "
+"operation\n"
+msgstr ""
+" --print gibt nur die Zeile aus, statt die Operation "
+"durchzuführen\n"
+
+#, c-format
+msgid ""
+" --print-format <string>\n"
+" specify how the targets should be printed\n"
+msgstr ""
+" --print-format <string>\n"
+" legt fest, wie die Ziele ausgegeben werden sollen\n"
+
+#, c-format
+msgid " -b, --dbpath <path> set an alternate database location\n"
+msgstr " -b, --dbpath <Pfad> Setzt einen anderen Ort für die Datenbank\n"
+
+#, c-format
+msgid " -r, --root <path> set an alternate installation root\n"
+msgstr ""
+" -r, --root <Pfad> Setzt ein alternatives Wurzelverzeichnis zur "
+"Installation\n"
+
+#, c-format
+msgid " -v, --verbose be verbose\n"
+msgstr " -v, --verbose Sei gesprächig\n"
+
+#, c-format
+msgid " --arch <arch> set an alternate architecture\n"
+msgstr " --arch <arch> Setzt eine alternative Architektur\n"
+
+#, c-format
+msgid " --cachedir <dir> set an alternate package cache location\n"
+msgstr ""
+" --cachedir <Verzeichnis> Setzt einen anderen Ort für den Paketpuffer\n"
+
+#, c-format
+msgid " --config <path> set an alternate configuration file\n"
+msgstr " --config <Pfad> Setzt eine alternative Konfigurationsdatei\n"
+
+#, c-format
+msgid " --debug display debug messages\n"
+msgstr " --debug Zeigt Debug-Meldungen an\n"
+
+#, fuzzy, c-format
+msgid " --gpgdir <path> set an alternate home directory for GnuPG\n"
+msgstr " --logfile <Pfad> Setzt eine alternative Log-Datei\n"
+
+#, c-format
+msgid " --logfile <path> set an alternate log file\n"
+msgstr " --logfile <Pfad> Setzt eine alternative Log-Datei\n"
+
+#, c-format
+msgid " --noconfirm do not ask for any confirmation\n"
+msgstr " --noconfirm Niemals nach einer Bestätigung fragen\n"
+
+#, c-format
+msgid ""
+" This program may be freely redistributed under\n"
+" the terms of the GNU General Public License.\n"
+msgstr ""
+" Dieses Programm darf unter Bedingungen der GNU\n"
+" General Public License frei weiterverbreitet werden.\n"
+
+#, c-format
+msgid "'%s' is not a valid debug level\n"
+msgstr "'%s' ist kein gültiger Debug-Level\n"
+
+#, c-format
+msgid "only one operation may be used at a time\n"
+msgstr "Es ist nur eine Operation zur selben Zeit erlaubt\n"
+
+#, c-format
+msgid "invalid option\n"
+msgstr "Ungültige Option\n"
+
+#, c-format
+msgid "buffer overflow detected in arg parsing\n"
+msgstr "Pufferüberlauf in arg Parsing erkannt\n"
+
+#, c-format
+msgid "failed to reopen stdin for reading: (%s)\n"
+msgstr "Konnte stdin nicht zum Auslesen neu öffnen: (%s)\n"
+
+#, c-format
+msgid "you cannot perform this operation unless you are root.\n"
+msgstr "Sie benötigen Root-Rechte, um diese Operation auszuführen.\n"
+
+#, c-format
+msgid "no operation specified (use -h for help)\n"
+msgstr "Keine Operation angegeben (benutzen Sie -h für Hilfe)\n"
+
+#, c-format
+msgid "%s is owned by %s %s\n"
+msgstr "%s ist in %s %s enthalten\n"
+
+#, c-format
+msgid "no file was specified for --owns\n"
+msgstr "Es wurde keine Datei für --owns angegeben\n"
+
+#, c-format
+msgid "failed to find '%s' in PATH: %s\n"
+msgstr "Konnte '%s' in PATH nicht finden: %s\n"
+
+#, c-format
+msgid "failed to read file '%s': %s\n"
+msgstr "Konnte Datei '%s' nicht lesen: %s\n"
+
+#, c-format
+msgid "cannot determine ownership of directory '%s'\n"
+msgstr "Kann die Eigentumsrechte am Verzeichnis '%s' nicht bestimmen\n"
+
+#, c-format
+msgid "cannot determine real path for '%s': %s\n"
+msgstr "Kann den wahren Pfad für '%s' nicht ermitteln: %s\n"
+
+#, c-format
+msgid "path too long: %s%s\n"
+msgstr "Pfad zu lang: %s%s\n"
+
+#, c-format
+msgid "No package owns %s\n"
+msgstr "Kein Paket besitzt %s\n"
+
+#, c-format
+msgid "group \"%s\" was not found\n"
+msgstr "Gruppe \"%s\" wurde nicht gefunden\n"
+
+#, c-format
+msgid "%s: %d total file, "
+msgid_plural "%s: %d total files, "
+msgstr[0] "%s: %d gesamte Datei,"
+msgstr[1] "%s: %d gesamte Dateien,"
+
+#, c-format
+msgid "%d missing file\n"
+msgid_plural "%d missing files\n"
+msgstr[0] "%d fehlende Datei\n"
+msgstr[1] "%d fehlende Dateien\n"
+
+#, c-format
+msgid "no usable package repositories configured.\n"
+msgstr "Keine brauchbaren Paket-Repositorien konfiguriert.\n"
+
+#, c-format
+msgid "package \"%s\" not found\n"
+msgstr "Paket \"%s\" wurde nicht gefunden\n"
+
+#, c-format
+msgid "failed to prepare transaction (%s)\n"
+msgstr "Konnte den Vorgang nicht vorbereiten (%s)\n"
+
+#, c-format
+msgid ":: package %s does not have a valid architecture\n"
+msgstr ":: Paket %s hat keine gültige Architektur\n"
+
+#, c-format
+msgid ":: %s: requires %s\n"
+msgstr ":: %s: benötigt %s\n"
+
+#, c-format
+msgid "%s is designated as a HoldPkg.\n"
+msgstr "%s ist als ein HoldPkg gekennzeichnet.\n"
+
+#, c-format
+msgid "HoldPkg was found in target list. Do you want to continue?"
+msgstr ""
+"Ein als HoldPkg markiertes Paket wurde in der Ziel-Liste gefunden. Möchten "
+"Sie fortfahren?"
+
+#, c-format
+msgid " there is nothing to do\n"
+msgstr " Es gibt nichts zu tun\n"
+
+#, c-format
+msgid "Do you want to remove these packages?"
+msgstr "Möchten Sie diese Pakete entfernen?"
+
+#, c-format
+msgid "failed to commit transaction (%s)\n"
+msgstr "Konnte den Vorgang nicht durchführen (%s)\n"
+
+#, c-format
+msgid "could not access database directory\n"
+msgstr "Konnte nicht auf Datenbank-Verzeichnis zugreifen\n"
+
+#, c-format
+msgid "could not remove %s\n"
+msgstr "Konnte %s nicht entfernen\n"
+
+#, c-format
+msgid "Do you want to remove %s?"
+msgstr "Möchten Sie %s entfernen?"
+
+#, c-format
+msgid "Database directory: %s\n"
+msgstr "Datenbank-Verzeichnis: %s\n"
+
+#, c-format
+msgid "Do you want to remove unused repositories?"
+msgstr "Möchten Sie ungenutzte Repositorien entfernen? "
+
+#, c-format
+msgid "Database directory cleaned up\n"
+msgstr "Datenbank-Verzeichnis wurde aufgeräumt\n"
+
+#, c-format
+msgid "Cache directory: %s\n"
+msgstr "Puffer-Verzeichnis: %s\n"
+
+#, c-format
+msgid "Packages to keep:\n"
+msgstr "Pakete, die beibehalten werden:\n"
+
+#, c-format
+msgid " All locally installed packages\n"
+msgstr " Alle lokal installierten Pakete\n"
+
+#, c-format
+msgid " All current sync database packages\n"
+msgstr "Alle Pakete der gegenwärtigen Datenbank-Synchronisation\n"
+
+#, c-format
+msgid "Do you want to remove all other packages from cache?"
+msgstr "Möchten Sie alle anderen Pakete aus dem Cache entfernen?"
+
+#, c-format
+msgid "removing old packages from cache...\n"
+msgstr "Entferne alte Pakete aus dem Puffer...\n"
+
+#, c-format
+msgid "Do you want to remove ALL files from cache?"
+msgstr "Möchten Sie ALLE Dateien aus dem Puffer entfernen? "
+
+#, c-format
+msgid "removing all files from cache...\n"
+msgstr "Entferne alle Dateien aus dem Puffer...\n"
+
+#, c-format
+msgid "could not access cache directory %s\n"
+msgstr "Konnte nicht auf Puffer-Verzeichnis %s zugreifen\n"
+
+#, c-format
+msgid "File %s does not seem to be a valid package, remove it?"
+msgstr "Datei %s scheint kein gültiges Paket zu sein, soll es entfernt werden?"
+
+#, c-format
+msgid "failed to update %s (%s)\n"
+msgstr "Konnte %s nicht aktualisieren (%s)\n"
+
+#, c-format
+msgid " %s is up to date\n"
+msgstr " %s ist aktuell\n"
+
+#, c-format
+msgid "failed to synchronize any databases\n"
+msgstr "Konnte keinerlei Datenbanken synchronisieren\n"
+
+#, c-format
+msgid "installed"
+msgstr "Installiert"
+
+#, c-format
+msgid "repository '%s' does not exist\n"
+msgstr "Das Repositorium '%s' existiert nicht.\n"
+
+#, c-format
+msgid "package '%s' was not found in repository '%s'\n"
+msgstr "Paket '%s' wurde nicht in Repositorium '%s' gefunden.\n"
+
+#, c-format
+msgid "package '%s' was not found\n"
+msgstr "Paket '%s' wurde nicht gefunden.\n"
+
+#, c-format
+msgid "repository \"%s\" was not found.\n"
+msgstr "Repositorium \"%s\" wurde nicht gefunden.\n"
+
+#, c-format
+msgid "skipping target: %s\n"
+msgstr "Überspringe das Ziel: %s\n"
+
+#, c-format
+msgid "target not found: %s\n"
+msgstr "Ziel nicht gefunden: %s\n"
+
+#, c-format
+msgid ":: There are %d members in group %s:\n"
+msgstr ":: Es sind %d Mitglieder in der Gruppe %s:\n"
+
+#, c-format
+msgid "database not found: %s\n"
+msgstr "Datenbank nicht gefunden: %s\n"
+
+#, c-format
+msgid ":: Starting full system upgrade...\n"
+msgstr ":: Starte komplette Systemaktualisierung...\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict\n"
+msgstr ":: %s und %s stehen miteinander in Konflikt\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s)\n"
+msgstr ":: %s und %s stehen miteinander in Konflikt mit (%s)\n"
+
+#, c-format
+msgid "Proceed with download?"
+msgstr "Download fortsetzen? "
+
+#, c-format
+msgid "Proceed with installation?"
+msgstr "Installation fortsetzen? "
+
+#, c-format
+msgid "%s exists in both '%s' and '%s'\n"
+msgstr "%s existiert in '%s' und '%s'\n"
+
+#, c-format
+msgid "%s: %s exists in filesystem\n"
+msgstr "%s: %s existiert im Dateisystem\n"
+
+#, c-format
+msgid "%s is invalid or corrupted\n"
+msgstr "%s ist ungültig oder beschädigt\n"
+
+#, c-format
+msgid "Errors occurred, no packages were upgraded.\n"
+msgstr "Fehler sind aufgetreten, keine Pakete wurden aktualisiert.\n"
+
+#, c-format
+msgid ":: Synchronizing package databases...\n"
+msgstr ":: Synchronisiere Paketdatenbanken...\n"
+
+#, c-format
+msgid ":: The following packages should be upgraded first :\n"
+msgstr ":: Die folgenden Pakete sollten zuerst aktualisiert werden :\n"
+
+#, c-format
+msgid ""
+":: Do you want to cancel the current operation\n"
+":: and upgrade these packages now?"
+msgstr ""
+":: Möchten Sie den laufenden Prozess abbrechen\n"
+":: und diese Pakete nun aktualisieren?"
+
+#, c-format
+msgid "failed to init transaction (%s)\n"
+msgstr "Konnte den Vorgang nicht starten (%s)\n"
+
+#, c-format
+msgid ""
+" if you're sure a package manager is not already\n"
+" running, you can remove %s\n"
+msgstr ""
+" Wenn Sie sicher sind, dass nicht bereits ein\n"
+" Paketmanager läuft, können Sie %s entfernen\n"
+
+#, c-format
+msgid " try running pacman-db-upgrade\n"
+msgstr " Vesuche, pacman-db-upgrade zu starten\n"
+
+#, c-format
+msgid "failed to release transaction (%s)\n"
+msgstr "Konnte den Vorgang nicht freigeben (%s)\n"
+
+#, c-format
+msgid "None"
+msgstr "Nichts"
+
+#, c-format
+msgid "insufficient columns available for table display\n"
+msgstr ""
+
+#, c-format
+msgid "Name"
+msgstr ""
+
+#, c-format
+msgid "Old Version"
+msgstr ""
+
+#, c-format
+msgid "New Version"
+msgstr ""
+
+#, c-format
+msgid "Size"
+msgstr ""
+
+#, c-format
+msgid "Targets (%d):"
+msgstr "Pakete (%d):"
+
+#, c-format
+msgid "Remove (%d):"
+msgstr "Entfernen (%d):"
+
+#, fuzzy, c-format
+msgid "Total Download Size: %.2f %s\n"
+msgstr "Gesamtgröße des Downloads: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Installed Size: %.2f %s\n"
+msgstr "Gesamtgröße der zu installierenden Pakete: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Net Upgrade Size: %.2f %s\n"
+msgstr "Gesamtgröße des Downloads: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Removed Size: %.2f %s\n"
+msgstr "Gesamtgröße der zu entfernenden Pakete: %.2f MB\n"
+
+#, c-format
+msgid "New optional dependencies for %s\n"
+msgstr "Neue optionale Abhängigkeiten für %s\n"
+
+#, c-format
+msgid "Optional dependencies for %s\n"
+msgstr "Optionale Abhängigkeiten für %s\n"
+
+#, c-format
+msgid "Repository %s\n"
+msgstr "Repositorium %s\n"
+
+#, c-format
+msgid "Invalid value: %d is not between %d and %d\n"
+msgstr "Ungültiger Wert: %d liegt nicht zwischen %d und %d\n"
+
+#, c-format
+msgid "Invalid number: %s\n"
+msgstr "Ungültige Zahl: %s\n"
+
+#, c-format
+msgid "Enter a selection (default=all)"
+msgstr "Geben Sie eine Auswahl ein (Voreinstellung=alle)"
+
+#, c-format
+msgid "Enter a number (default=%d)"
+msgstr "Geben Sie eine Zahl ein (Voreinstellung=%d)"
+
+#, c-format
+msgid "[Y/n]"
+msgstr "[J/n]"
+
+#, c-format
+msgid "[y/N]"
+msgstr "[j/N]"
+
+#, c-format
+msgid "Y"
+msgstr "J"
+
+#, c-format
+msgid "YES"
+msgstr "JA"
+
+#, c-format
+msgid "N"
+msgstr "N"
+
+#, c-format
+msgid "NO"
+msgstr "NEIN"
+
+#, c-format
+msgid "failed to allocate string\n"
+msgstr "Konnte die Zeichenkette nicht zuweisen\n"
+
+#, c-format
+msgid "error: %s"
+msgstr "Fehler: %s"
+
+#, c-format
+msgid "warning: %s"
+msgstr "Warnung: %s"
+
+#, c-format
+msgid "error: "
+msgstr "Fehler: "
+
+#, c-format
+msgid "warning: "
+msgstr "Warnung: "
+
diff --git a/src/pacman/po/el.po b/src/pacman/po/el.po
new file mode 100644
index 00000000..7dc1082e
--- /dev/null
+++ b/src/pacman/po/el.po
@@ -0,0 +1,1127 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Pacman Development Team <pacman-dev@archlinux.org>
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Arch Linux Pacman package manager\n"
+"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
+"POT-Creation-Date: 2011-06-23 21:59-0500\n"
+"PO-Revision-Date: 2011-04-08 19:22+0000\n"
+"Last-Translator: nous <nous@archlinux.us>\n"
+"Language-Team: Greek <None>\n"
+"Language: el\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"
+
+#, c-format
+msgid "checking dependencies...\n"
+msgstr "έλεγχος εξαρτήσεων...\n"
+
+#, c-format
+msgid "checking for file conflicts...\n"
+msgstr "έλεγχος διενέξεων αρχείων...\n"
+
+#, c-format
+msgid "resolving dependencies...\n"
+msgstr "επίλυση εξαρτήσεων...\n"
+
+#, c-format
+msgid "looking for inter-conflicts...\n"
+msgstr "διερεύνηση διενέξεων...\n"
+
+#, c-format
+msgid "installing %s...\n"
+msgstr "εγκατάσταση %s...\n"
+
+#, c-format
+msgid "removing %s...\n"
+msgstr "κατάργηση %s...\n"
+
+#, c-format
+msgid "upgrading %s...\n"
+msgstr "αναβάθμιση %s...\n"
+
+#, c-format
+msgid "checking package integrity...\n"
+msgstr "έλεγχος ακεραιότητας πακέτων...\n"
+
+#, c-format
+msgid "checking delta integrity...\n"
+msgstr "έλεγχος ακεραιότητας delta...\n"
+
+#, c-format
+msgid "applying deltas...\n"
+msgstr "εφαρμογή των deltas...\n"
+
+#, c-format
+msgid "generating %s with %s... "
+msgstr "δημιουργία %s με %s... "
+
+#, c-format
+msgid "success!\n"
+msgstr "επιτυχία!\n"
+
+#, c-format
+msgid "failed.\n"
+msgstr "αποτυχία.\n"
+
+#, c-format
+msgid ":: Retrieving packages from %s...\n"
+msgstr ":: Λήψη πακέτων από [%s]...\n"
+
+#, c-format
+msgid "checking available disk space...\n"
+msgstr "έλεγχος διαθέσιμου χώρου δίσκου...\n"
+
+#, c-format
+msgid ":: %s is in IgnorePkg/IgnoreGroup. Install anyway?"
+msgstr ":: Το %s είναι στο IgnorePkg/IgnoreGroup. Εγκατάσταση;"
+
+#, c-format
+msgid ":: Replace %s with %s/%s?"
+msgstr ":: Αντικατάσταση %s με %s/%s;"
+
+#, c-format
+msgid ":: %s and %s are in conflict. Remove %s?"
+msgstr ":: Διένεξη %s με %s. Κατάργηση %s;"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s). Remove %s?"
+msgstr ":: Διένεξη %s με %s (%s). Κατάργηση %s;"
+
+#, c-format
+msgid ""
+":: The following package cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgid_plural ""
+":: The following packages cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgstr[0] ""
+":: Αδυναμία αναβάθμισης του ακόλουθου πακέτου λόγω ανεπίλυτων εξαρτήσεων:\n"
+msgstr[1] ""
+":: Αδυναμία αναβάθμισης των ακόλουθων πακέτων λόγω ανεπίλυτων εξαρτήσεων:\n"
+
+#, c-format
+msgid "Do you want to skip the above package for this upgrade?"
+msgid_plural "Do you want to skip the above packages for this upgrade?"
+msgstr[0] "Παράλειψη του παραπάνω πακέτου από την αναβάθμιση;"
+msgstr[1] "Παράλειψη των παραπάνω πακέτων από την αναβάθμιση;"
+
+#, c-format
+msgid ":: There are %d providers available for %s:\n"
+msgstr ":: Υπάρχουν %d διαθέσιμοι πάροχοι για το %s:\n"
+
+#, c-format
+msgid ":: %s-%s: local version is newer. Upgrade anyway?"
+msgstr ":: %s-%s: η τοπική έκδοση είναι νεότερη. Αναβάθμιση;"
+
+#, c-format
+msgid ":: File %s is corrupted. Do you want to delete it?"
+msgstr ":: Το αρχείο %s είναι κατεστραμμένο. Διαγραφή;"
+
+#, c-format
+msgid "installing"
+msgstr "εγκατάσταση"
+
+#, c-format
+msgid "upgrading"
+msgstr "αναβάθμιση"
+
+#, c-format
+msgid "removing"
+msgstr "κατάργηση"
+
+#, c-format
+msgid "checking for file conflicts"
+msgstr "έλεγχος διενέξεων αρχείων"
+
+#, c-format
+msgid "checking available disk space"
+msgstr "έλεγχος διαθέσιμου χώρου δίσκου"
+
+#, c-format
+msgid "checking package integrity"
+msgstr "έλεγχος ακεραιότητας πακέτων"
+
+#, c-format
+msgid "downloading %s...\n"
+msgstr "λήψη %s...\n"
+
+#, c-format
+msgid "malloc failure: could not allocate %zd bytes\n"
+msgstr "σφάλμα malloc: αποτυχία δέσμευσης %zd bytes\n"
+
+#, c-format
+msgid "could not get current working directory\n"
+msgstr "αδυναμία προσδιορισμού τρέχοντος καταλόγου\n"
+
+#, c-format
+msgid "could not chdir to download directory %s\n"
+msgstr "αδυναμία χρήσης του καταλόγου λήψης %s\n"
+
+#, c-format
+msgid "running XferCommand: fork failed!\n"
+msgstr "εκτέλεση XferCommand: αποτυχία fork!\n"
+
+#, c-format
+msgid "could not change directory to %s (%s)\n"
+msgstr "αδυναμία μετάβασης στον κατάλογο %s (%s)\n"
+
+#, c-format
+msgid "invalid value for 'CleanMethod' : '%s'\n"
+msgstr "άκυρη τιμή 'CleanMethod' : '%s'\n"
+
+#, c-format
+msgid ""
+"config file %s, line %d: directive '%s' in section '%s' not recognized.\n"
+msgstr "αρχείο επιλογών %s, γραμμή %d: άγνωστη εντολή '%s' στο τμήμα '%s'\n"
+
+#, fuzzy, c-format
+msgid "config file %s, line %d: directive '%s' has invalid value '%s'\n"
+msgstr "αρχείο ρυθμίσεων %s, γραμμή %d: η εντολή '%s' απαιτεί τιμή\n"
+
+#, c-format
+msgid ""
+"The mirror '%s' contains the $arch variable, but no Architecture is "
+"defined.\n"
+msgstr ""
+"Ο διακομιστής '%s' περιέχει την μεταβλητή $arch, αλλά δεν έχει ορισθεί "
+"Αρχιτεκτονική.\n"
+
+#, c-format
+msgid "could not add server URL to database '%s': %s (%s)\n"
+msgstr "αδυναμία προσθήκης διεύθυνσης διακομιστή στην βάση '%s': %s (%s)\n"
+
+#, c-format
+msgid "failed to initialize alpm library (%s)\n"
+msgstr "αδυναμία εκκίνησης βιβλιοθήκης alpm (%s)\n"
+
+#, c-format
+msgid "problem setting logfile '%s' (%s)\n"
+msgstr "πρόβλημα στον ορισμό του αρχείου καταγραφής '%s' (%s)\n"
+
+#, fuzzy, c-format
+msgid "problem setting gpgdir '%s' (%s)\n"
+msgstr "πρόβλημα στον ορισμό ριζικού καταλόγου '%s' (%s)\n"
+
+#, c-format
+msgid "could not register '%s' database (%s)\n"
+msgstr "αδυναμία καταχώρησης βάσης '%s' (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not set verify option for database '%s' (%s)\n"
+msgstr "αδυναμία προσθήκης διεύθυνσης διακομιστή στην βάση '%s': %s (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not add mirror '%s' to database '%s' (%s)\n"
+msgstr "αδυναμία προσθήκης διεύθυνσης διακομιστή στην βάση '%s': %s (%s)\n"
+
+#, c-format
+msgid "config parsing exceeded max recursion depth of %d.\n"
+msgstr ""
+
+#, c-format
+msgid "config file %s could not be read.\n"
+msgstr "αδύνατη η ανάγνωση του αρχείου ρυθμίσεων %s.\n"
+
+#, c-format
+msgid "config file %s, line %d: bad section name.\n"
+msgstr "αρχείο ρυθμίσεων %s, γραμμή %d: άκυρο όνομα ενότητας.\n"
+
+#, c-format
+msgid "config file %s, line %d: syntax error in config file- missing key.\n"
+msgstr "αρχείο ρυθμίσεων %s, γραμμή %d: συντακτικό σφάλμα- απόν όρισμα.\n"
+
+#, c-format
+msgid "config file %s, line %d: All directives must belong to a section.\n"
+msgstr ""
+"αρχείο ρυθμίσεων %s, γραμμή %d: όλες οι οδηγίες πρέπει να ανήκουν σε "
+"ενότητα.\n"
+
+#, c-format
+msgid "config file %s, line %d: directive '%s' needs a value\n"
+msgstr "αρχείο ρυθμίσεων %s, γραμμή %d: η εντολή '%s' απαιτεί τιμή\n"
+
+#, c-format
+msgid "no targets specified (use -h for help)\n"
+msgstr "ακαθόριστος στόχος (-h για βοήθεια)\n"
+
+#, c-format
+msgid "no install reason specified (use -h for help)\n"
+msgstr "ακαθόριστη αιτία εγκατάστασης (-h για βοήθεια)\n"
+
+#, c-format
+msgid "could not set install reason for package %s (%s)\n"
+msgstr "αδυναμία ορισμού αιτίας εγκατάστασης πακέτου %s (%s)\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'installed as dependency'\n"
+msgstr "%s: ορισμός αιτίας εγκατάστασης 'ως εξάρτηση'\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'explicitly installed'\n"
+msgstr "%s: ορισμός αιτίας εγκατάστασης 'ρητώς εγκατεστημένο'\n"
+
+#, c-format
+msgid "Explicitly installed"
+msgstr "Ρητώς εγκατεστημένο"
+
+#, c-format
+msgid "Installed as a dependency for another package"
+msgstr "Εγκατεστημένο ως εξάρτηση άλλου πακέτου"
+
+#, c-format
+msgid "Unknown"
+msgstr "Άγνωστη"
+
+#, c-format
+msgid "Repository :"
+msgstr "Αποθήκη :"
+
+#, c-format
+msgid "Name :"
+msgstr "Όνομα :"
+
+#, c-format
+msgid "Version :"
+msgstr "Έκδοση :"
+
+#, c-format
+msgid "URL :"
+msgstr "Ιστοσελίδα :"
+
+#, c-format
+msgid "Licenses :"
+msgstr "Άδειες :"
+
+#, c-format
+msgid "Groups :"
+msgstr "Ομάδες :"
+
+#, c-format
+msgid "Provides :"
+msgstr "Παρέχει :"
+
+#, c-format
+msgid "Depends On :"
+msgstr "Εξαρτάται από :"
+
+#, c-format
+msgid "Optional Deps :"
+msgstr "Προαιρετικές εξαρτήσεις:"
+
+#, c-format
+msgid "Required By :"
+msgstr "Απαιτείται από :"
+
+#, c-format
+msgid "Conflicts With :"
+msgstr "Διένεξη με :"
+
+#, c-format
+msgid "Replaces :"
+msgstr "Αντικαθιστά :"
+
+#, fuzzy, c-format
+msgid "Download Size : %6.2f %s\n"
+msgstr "Μέγεθος λήψης : %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Compressed Size: %6.2f %s\n"
+msgstr "Συμπιεσμένο μέγεθος : %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Installed Size : %6.2f %s\n"
+msgstr "Εγκατεστημένο μέγεθος : %6.2f K\n"
+
+#, c-format
+msgid "Packager :"
+msgstr "Υπεύθυνος πακέτου :"
+
+#, c-format
+msgid "Architecture :"
+msgstr "Αρχιτεκτονική :"
+
+#, c-format
+msgid "Build Date :"
+msgstr "Ημερομηνία δημιουργίας :"
+
+#, c-format
+msgid "Install Date :"
+msgstr "Ημερομηνία εγκατάστασης:"
+
+#, c-format
+msgid "Install Reason :"
+msgstr "Αιτία εγκατάστασης :"
+
+#, c-format
+msgid "Install Script :"
+msgstr "Σενάριο εγκατάστασης :"
+
+#, c-format
+msgid "Yes"
+msgstr "Ναι"
+
+#, c-format
+msgid "No"
+msgstr "Όχι"
+
+#, c-format
+msgid "MD5 Sum :"
+msgstr "Άθροισμα MD5 :"
+
+#, c-format
+msgid "Description :"
+msgstr "Περιγραφή :"
+
+#, c-format
+msgid "could not calculate checksums for %s\n"
+msgstr "αποτυχία υπολογισμού αθροίσματος ελέγχου του %s\n"
+
+#, c-format
+msgid "Backup Files:\n"
+msgstr "Εφεδρικά αρχεία:\n"
+
+#, c-format
+msgid "(none)\n"
+msgstr "(ουδέν)\n"
+
+#, c-format
+msgid "no changelog available for '%s'.\n"
+msgstr "μη διαθέσιμο ημερολόγιο αλλαγών του '%s'.\n"
+
+#, c-format
+msgid "options"
+msgstr "επιλογές"
+
+#, c-format
+msgid "file(s)"
+msgstr "αρχείο(-α)"
+
+#, c-format
+msgid "package(s)"
+msgstr "πακέτο(-α)"
+
+#, c-format
+msgid "usage"
+msgstr "χρήση"
+
+#, c-format
+msgid "operation"
+msgstr "λειτουργία"
+
+#, c-format
+msgid "operations:\n"
+msgstr "λειτουργίες:\n"
+
+#, c-format
+msgid ""
+"\n"
+"use '%s {-h --help}' with an operation for available options\n"
+msgstr ""
+"\n"
+"χρήση: '%s {-h --help}' με μια λειτουργία για διαθέσιμες επιλογές\n"
+
+#, c-format
+msgid ""
+" -c, --cascade remove packages and all packages that depend on them\n"
+msgstr ""
+" -c, --cascade κατάργηση πακέτων και όλων όσων εξαρτώνται από "
+"αυτά\n"
+
+#, c-format
+msgid " -n, --nosave remove configuration files\n"
+msgstr " -n, --nosave κατάργηση αρχείων ρυθμίσεων\n"
+
+#, c-format
+msgid ""
+" -s, --recursive remove unnecessary dependencies\n"
+" (-ss includes explicitly installed dependencies)\n"
+msgstr ""
+" -s, --recursive κατάργηση αχρείαστων εξαρτήσεων\n"
+" (-ss και ρητώς εγκατεστημένες εξαρτήσεις)\n"
+
+#, c-format
+msgid " -u, --unneeded remove unneeded packages\n"
+msgstr " -u, --uneeded κατάργηση αχρείαστων πακέτων\n"
+
+#, c-format
+msgid " -c, --changelog view the changelog of a package\n"
+msgstr " -c, --changelog εμφάνιση του ημερολογίου αλλαγών\n"
+
+#, c-format
+msgid ""
+" -d, --deps list packages installed as dependencies [filter]\n"
+msgstr ""
+" -d, --deps παράθεση πακέτων εγκατεστημένων ως εξαρτήσεις "
+"[φίλτρο]\n"
+
+#, c-format
+msgid " -e, --explicit list packages explicitly installed [filter]\n"
+msgstr ""
+" -e, --explicit παράθεση πακέτων εγκατεστημένων ρητώς [φίλτρο]\n"
+
+#, c-format
+msgid " -g, --groups view all members of a package group\n"
+msgstr " -g, --groups εμφάνιση όλων των πακέτων μιας ομάδας\n"
+
+#, c-format
+msgid ""
+" -i, --info view package information (-ii for backup files)\n"
+msgstr ""
+" -i, --info εμφάνιση πληροφοριών πακέτου (-ii για εφεδρικά "
+"αρχεία)\n"
+
+#, c-format
+msgid ""
+" -k, --check check that the files owned by the package(s) are "
+"present\n"
+msgstr ""
+" -k, --check έλεγχος παρουσίας των αρχείων που ανήκουν σε "
+"πακέτο(-α)\n"
+
+#, c-format
+msgid " -l, --list list the contents of the queried package\n"
+msgstr " -l, --list παράθεση αρχείων πακέτου\n"
+
+#, c-format
+msgid ""
+" -m, --foreign list installed packages not found in sync db(s) "
+"[filter]\n"
+msgstr ""
+" -m, --foreign παράθεση εγκατεστημένων πακέτων εκτός βάσης "
+"συγχρονισμού [φίλτρο]\n"
+
+#, c-format
+msgid " -o, --owns <file> query the package that owns <file>\n"
+msgstr ""
+" -o, --owns <αρχείο> αναζήτηση πακέτου όπου ανήκει το <αρχείο>\n"
+
+#, c-format
+msgid " -p, --file <package> query a package file instead of the database\n"
+msgstr " -p, --file <πακέτο> αναζήτηση σε πακέτο αντί στην βάση\n"
+
+#, c-format
+msgid " -q, --quiet show less information for query and search\n"
+msgstr ""
+" -q, --quiet εμφάνιση λιγότερης πληροφορίας στην αναζήτηση\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search locally-installed packages for matching "
+"strings\n"
+msgstr ""
+" -s, --search <έκφραση> αναζήτηση συμβολοσειράς στα εγκατεστημένα "
+"πακέτα\n"
+
+#, c-format
+msgid ""
+" -t, --unrequired list packages not required by any package [filter]\n"
+msgstr ""
+" -t, --unrequired παράθεση πακέτων που δεν απαιτούνται από άλλα "
+"[φίλτρο]\n"
+
+#, c-format
+msgid " -u, --upgrades list outdated packages [filter]\n"
+msgstr " -u, --upgrades παράθεση αναβαθμίσιμων πακέτων [φίλτρο]\n"
+
+#, c-format
+msgid ""
+" -c, --clean remove old packages from cache directory (-cc for "
+"all)\n"
+msgstr ""
+" -c, --clean διαγραφή παλαιών πακέτων από την τοπική κρύπτη "
+"(-cc για διαγραφή όλων)\n"
+
+#, c-format
+msgid " -i, --info view package information\n"
+msgstr " -i, --info εμφάνιση πληροφοριών πακέτου\n"
+
+#, c-format
+msgid " -l, --list <repo> view a list of packages in a repo\n"
+msgstr " -l, --list <αποθήκη> εμφάνιση λίστας πακέτων αποθήκης\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search remote repositories for matching strings\n"
+msgstr " -s, --search <έκφραση> αναζήτηση συμβολοσειρών στις αποθήκες\n"
+
+#, c-format
+msgid ""
+" -u, --sysupgrade upgrade installed packages (-uu allows downgrade)\n"
+msgstr ""
+" -u, --sysupgrade αναβάθμιση εγκατεστημένων πακέτων (-uu "
+"επιτρέπει υποβάθμιση)\n"
+
+#, c-format
+msgid ""
+" -w, --downloadonly download packages but do not install/upgrade "
+"anything\n"
+msgstr ""
+" -w, --downloadonly μόνο λήψη πακέτων, χωρίς εγκατάσταση/"
+"αναβάθμιση\n"
+
+#, c-format
+msgid ""
+" -y, --refresh download fresh package databases from the server\n"
+msgstr ""
+" -y, --refresh λήψη ανανεωμένων βάσεων πακέτων από τον "
+"διακομιστή\n"
+
+#, c-format
+msgid " --needed don't reinstall up to date packages\n"
+msgstr " --needed μη επανεγκατάσταση ενημερωμένων πακέτων\n"
+
+#, c-format
+msgid " --asdeps mark packages as non-explicitly installed\n"
+msgstr ""
+" --asdeps σήμανση πακέτων ως μη-ρητώς εγκατεστημένων\n"
+
+#, c-format
+msgid " --asexplicit mark packages as explicitly installed\n"
+msgstr " --asexplicit σήμανση πακέτων ως ρητώς εγκατεστημένων\n"
+
+#, c-format
+msgid " -f, --force force install, overwrite conflicting files\n"
+msgstr ""
+" -f, --force επιβολή εγκατάστασης, αντικατάσταση υπαρχόντων "
+"αρχείων\n"
+
+#, c-format
+msgid " --asdeps install packages as non-explicitly installed\n"
+msgstr ""
+" --asdeps εγκατάσταση πακέτων ως μη-ρητώς εγκατεστημένων\n"
+
+#, c-format
+msgid " --asexplicit install packages as explicitly installed\n"
+msgstr ""
+" --asexplicit εγκατάσταση πακέτων ως ρητώς εγκατεστημένων\n"
+
+#, c-format
+msgid ""
+" --ignore <pkg> ignore a package upgrade (can be used more than "
+"once)\n"
+msgstr ""
+" --ignore <πακέτο> παράβλεψη αναβάθμισης πακέτου (επιτρέπεται "
+"πολλαπλή χρήση)\n"
+
+#, c-format
+msgid ""
+" --ignoregroup <grp>\n"
+" ignore a group upgrade (can be used more than once)\n"
+msgstr ""
+" --ignoregroup <ομάδα> παράβλεψη αναβάθμισης ομάδας (επιτρέπεται "
+"πολλαπλή χρήση)\n"
+
+#, c-format
+msgid ""
+" -d, --nodeps skip dependency version checks (-dd to skip all "
+"checks)\n"
+msgstr ""
+" -d, --nodeps παράλειψη ελέγχου έκδοσης εξαρτήσεων (-dd "
+"παράλειψη όλων των ελέγχων)\n"
+
+#, c-format
+msgid ""
+" -k, --dbonly only modify database entries, not package files\n"
+msgstr ""
+" -k, --dbonly τροποποίηση μόνο εγγραφών βάσης, όχι πακέτων\n"
+
+#, c-format
+msgid ""
+" --noprogressbar do not show a progress bar when downloading files\n"
+msgstr " --noprogressbar απόκρυψη γραμμής προόδου λήψης πακέτων\n"
+
+#, c-format
+msgid ""
+" --noscriptlet do not execute the install scriptlet if one exists\n"
+msgstr ""
+" --noscriptlet παράβλεψη σεναρίου εγκατάστασης, εάν υφίσταται\n"
+
+#, c-format
+msgid ""
+" --print print the targets instead of performing the "
+"operation\n"
+msgstr ""
+" --print εμφάνιση στόχων χωρίς εκτέλεση λειτουργίας\n"
+
+#, c-format
+msgid ""
+" --print-format <string>\n"
+" specify how the targets should be printed\n"
+msgstr " --print-format <μορφή> ορισμός τρόπου εμφάνισης στόχων\n"
+
+#, c-format
+msgid " -b, --dbpath <path> set an alternate database location\n"
+msgstr ""
+" -b, --dbpath <διαδρομή> ορισμός εναλλακτικής θέσης βάσης πακέτων\n"
+
+#, c-format
+msgid " -r, --root <path> set an alternate installation root\n"
+msgstr " -r, --root <διαδρομή> ορισμός εναλλακτικής ρίζας εγκατάστασης\n"
+
+#, c-format
+msgid " -v, --verbose be verbose\n"
+msgstr " -v, --verbose περισσότερες λεπτομέρειες\n"
+
+#, c-format
+msgid " --arch <arch> set an alternate architecture\n"
+msgstr " --arch <αρχιτεκτονική> ορισμός εναλλακτικής αρχιτεκτονικής\n"
+
+#, c-format
+msgid " --cachedir <dir> set an alternate package cache location\n"
+msgstr ""
+" --cachedir <διαδρομή> ορισμός εναλλακτικής θέσης κρύπτης πακέτων\n"
+
+#, c-format
+msgid " --config <path> set an alternate configuration file\n"
+msgstr " --config <διαδρομή> ορισμός εναλλακτικού αρχείου ρυθμίσεων\n"
+
+#, c-format
+msgid " --debug display debug messages\n"
+msgstr " --debug εμφάνιση μηνυμάτων αποσφαλμάτωσης\n"
+
+#, fuzzy, c-format
+msgid " --gpgdir <path> set an alternate home directory for GnuPG\n"
+msgstr " --logfile <διαδρομή> ορισμός εναλλακτικού αρχείου καταγραφής\n"
+
+#, c-format
+msgid " --logfile <path> set an alternate log file\n"
+msgstr " --logfile <διαδρομή> ορισμός εναλλακτικού αρχείου καταγραφής\n"
+
+#, c-format
+msgid " --noconfirm do not ask for any confirmation\n"
+msgstr " --noconfirm λειτουργία χωρίς επιβεβαίωση\n"
+
+#, c-format
+msgid ""
+" This program may be freely redistributed under\n"
+" the terms of the GNU General Public License.\n"
+msgstr ""
+" Το πρόγραμμα αυτό μπορεί να αναδιανεμηθεί ελεύθερα\n"
+" υπό τους όρους της Γενικής Δημόσιας Άδειας GNU GPL.\n"
+
+#, c-format
+msgid "'%s' is not a valid debug level\n"
+msgstr "το '%s' δεν είναι έγκυρο επίπεδο αποσφαλμάτωσης\n"
+
+#, c-format
+msgid "only one operation may be used at a time\n"
+msgstr "μόνο μια λειτουργία την φορά μπορεί να εκτελεστεί\n"
+
+#, c-format
+msgid "invalid option\n"
+msgstr "άκυρη επιλογή\n"
+
+#, c-format
+msgid "buffer overflow detected in arg parsing\n"
+msgstr "υπερχείλιση buffer στην ανάλυση ορισμάτων\n"
+
+#, c-format
+msgid "failed to reopen stdin for reading: (%s)\n"
+msgstr "αποτυχία ανάγνωσης από stdin: (%s)\n"
+
+#, c-format
+msgid "you cannot perform this operation unless you are root.\n"
+msgstr "αυτή η λειτουργία απαιτεί προνόμια root.\n"
+
+#, c-format
+msgid "no operation specified (use -h for help)\n"
+msgstr "ακαθόριστη λειτουργία ('-h' για βοήθεια)\n"
+
+#, c-format
+msgid "%s is owned by %s %s\n"
+msgstr "Το %s ανήκει στο %s %s\n"
+
+#, c-format
+msgid "no file was specified for --owns\n"
+msgstr "δεν ορίσθηκε αρχείο στην --owns\n"
+
+#, c-format
+msgid "failed to find '%s' in PATH: %s\n"
+msgstr "αποτυχία εύρεσης αρχείου '%s' στο PATH: %s\n"
+
+#, c-format
+msgid "failed to read file '%s': %s\n"
+msgstr "αποτυχία ανάγνωσης αρχείου '%s': %s\n"
+
+#, c-format
+msgid "cannot determine ownership of directory '%s'\n"
+msgstr "αδυναμία προσδιορισμού κυριότητας καταλόγου '%s'\n"
+
+#, c-format
+msgid "cannot determine real path for '%s': %s\n"
+msgstr "αδύνατος ο προσδιορισμός της πραγματικής διαδρομής για το '%s': %s\n"
+
+#, c-format
+msgid "path too long: %s%s\n"
+msgstr "υπερβολικό μήκος διαδρομής: %s%s\n"
+
+#, c-format
+msgid "No package owns %s\n"
+msgstr "Το %s δεν ανήκει σε κανένα πακέτο\n"
+
+#, c-format
+msgid "group \"%s\" was not found\n"
+msgstr "δεν βρέθηκε ομάδα \"%s\"\n"
+
+#, c-format
+msgid "%s: %d total file, "
+msgid_plural "%s: %d total files, "
+msgstr[0] "%s: %d αρχείο συνολικά, "
+msgstr[1] "%s: %d αρχεία συνολικά, "
+
+#, c-format
+msgid "%d missing file\n"
+msgid_plural "%d missing files\n"
+msgstr[0] "%d απόν αρχείο\n"
+msgstr[1] "%d απόντα αρχεία\n"
+
+#, c-format
+msgid "no usable package repositories configured.\n"
+msgstr "αρρύθμιστες αποθήκες πακέτων.\n"
+
+#, c-format
+msgid "package \"%s\" not found\n"
+msgstr "δεν βρέθηκε το πακέτο \"%s\"\n"
+
+#, c-format
+msgid "failed to prepare transaction (%s)\n"
+msgstr "αποτυχία προετοιμασίας διεκπεραίωσης (%s)\n"
+
+#, c-format
+msgid ":: package %s does not have a valid architecture\n"
+msgstr ":: το πακέτο '%s' δεν έχει έγκυρη αρχιτεκτονική\n"
+
+#, c-format
+msgid ":: %s: requires %s\n"
+msgstr ":: %s: απαιτεί το %s\n"
+
+#, c-format
+msgid "%s is designated as a HoldPkg.\n"
+msgstr "Το %s είναι σεσημασμένο ως HoldPkg.\n"
+
+#, c-format
+msgid "HoldPkg was found in target list. Do you want to continue?"
+msgstr "Βρέθηκε πακέτο HoldPkg στην λίστα διεκπεραίωσης. Συνέχεια;"
+
+#, c-format
+msgid " there is nothing to do\n"
+msgstr " ουδέν πρακτέον\n"
+
+#, c-format
+msgid "Do you want to remove these packages?"
+msgstr "Κατάργηση αυτών των πακέτων;"
+
+#, c-format
+msgid "failed to commit transaction (%s)\n"
+msgstr "αποτυχία διεκπεραίωσης (%s)\n"
+
+#, c-format
+msgid "could not access database directory\n"
+msgstr "αδυναμία πρόσβασης στον κατάλογο βάσης\n"
+
+#, c-format
+msgid "could not remove %s\n"
+msgstr "αδυναμία διαγραφής %s\n"
+
+#, c-format
+msgid "Do you want to remove %s?"
+msgstr "Διαγραφή %s;"
+
+#, c-format
+msgid "Database directory: %s\n"
+msgstr "Κατάλογος βάσης: %s\n"
+
+#, c-format
+msgid "Do you want to remove unused repositories?"
+msgstr "Διαγραφή αχρησιμοποίητων αποθηκών;"
+
+#, c-format
+msgid "Database directory cleaned up\n"
+msgstr "Κατάλογος βάσης άδειος\n"
+
+#, c-format
+msgid "Cache directory: %s\n"
+msgstr "Κατάλογος κρύπτης: %s\n"
+
+#, c-format
+msgid "Packages to keep:\n"
+msgstr "Διατήρηση πακέτων:\n"
+
+#, c-format
+msgid " All locally installed packages\n"
+msgstr " Σύνολο τοπικώς εγκατεστημένων πακέτων\n"
+
+#, c-format
+msgid " All current sync database packages\n"
+msgstr " Σύνολο συγχρονισμένων πακέτων βάσης\n"
+
+#, c-format
+msgid "Do you want to remove all other packages from cache?"
+msgstr "Διαγραφή όλων των άλλων πακέτων από την κρύπτη;"
+
+#, c-format
+msgid "removing old packages from cache...\n"
+msgstr "διαγραφή παλαιών πακέτων από την κρύπτη...\n"
+
+#, c-format
+msgid "Do you want to remove ALL files from cache?"
+msgstr "Διαγραφή ΟΛΩΝ των πακέτων από την κρύπτη;"
+
+#, c-format
+msgid "removing all files from cache...\n"
+msgstr "διαγραφή όλης της κρύπτης...\n"
+
+#, c-format
+msgid "could not access cache directory %s\n"
+msgstr "αδυναμία πρόσβασης καταλόγου κρύπτης %s\n"
+
+#, c-format
+msgid "File %s does not seem to be a valid package, remove it?"
+msgstr "Το αρχείο %s δεν δείχνει έγκυρο πακέτο, διαγραφή;"
+
+#, c-format
+msgid "failed to update %s (%s)\n"
+msgstr "αδυναμία ενημέρωσης %s (%s)\n"
+
+#, c-format
+msgid " %s is up to date\n"
+msgstr " %s ενημερωμένο\n"
+
+#, c-format
+msgid "failed to synchronize any databases\n"
+msgstr "αποτυχία συγχρονισμού βάσεων\n"
+
+#, c-format
+msgid "installed"
+msgstr "εγκατεστημένο"
+
+#, c-format
+msgid "repository '%s' does not exist\n"
+msgstr "ανύπαρκτη αποθήκη '%s'\n"
+
+#, c-format
+msgid "package '%s' was not found in repository '%s'\n"
+msgstr "το πακέτο '%s' δεν βρέθηκε στην αποθήκη '%s'\n"
+
+#, c-format
+msgid "package '%s' was not found\n"
+msgstr "το πακέτο '%s' δεν βρέθηκε\n"
+
+#, c-format
+msgid "repository \"%s\" was not found.\n"
+msgstr "η αποθήκη '%s' δεν βρέθηκε.\n"
+
+#, c-format
+msgid "skipping target: %s\n"
+msgstr "παράλειψη στόχου: %s\n"
+
+#, c-format
+msgid "target not found: %s\n"
+msgstr "στόχος δεν βρέθηκε: %s\n"
+
+#, c-format
+msgid ":: There are %d members in group %s:\n"
+msgstr ":: Υπάρχουν %d μέλη στην ομάδα %s:\n"
+
+#, c-format
+msgid "database not found: %s\n"
+msgstr "δεν βρέθηκε η βάση: %s\n"
+
+#, c-format
+msgid ":: Starting full system upgrade...\n"
+msgstr ":: Έναρξη πλήρους αναβάθμισης συστήματος...\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict\n"
+msgstr ":: διένεξη %s με %s\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s)\n"
+msgstr ":: διένεξη %s με %s (%s)\n"
+
+#, c-format
+msgid "Proceed with download?"
+msgstr "Συνέχιση λήψης;"
+
+#, c-format
+msgid "Proceed with installation?"
+msgstr "Συνέχιση εγκατάστασης;"
+
+#, c-format
+msgid "%s exists in both '%s' and '%s'\n"
+msgstr "Το %s υπάρχει και στο '%s' και στο '%s'\n"
+
+#, c-format
+msgid "%s: %s exists in filesystem\n"
+msgstr "%s: το %s υπάρχει ήδη\n"
+
+#, c-format
+msgid "%s is invalid or corrupted\n"
+msgstr "το %s είναι άκυρο ή κατεστραμμένο\n"
+
+#, c-format
+msgid "Errors occurred, no packages were upgraded.\n"
+msgstr "Προέκυψαν σφάλματα, δεν αναβαθμίστηκαν πακέτα.\n"
+
+#, c-format
+msgid ":: Synchronizing package databases...\n"
+msgstr ":: Συγχρονισμός βάσης πακέτων...\n"
+
+#, c-format
+msgid ":: The following packages should be upgraded first :\n"
+msgstr ":: Τα ακόλουθα πακέτα πρέπει να αναβαθμιστούν πρώτα :\n"
+
+#, c-format
+msgid ""
+":: Do you want to cancel the current operation\n"
+":: and upgrade these packages now?"
+msgstr ""
+":: Ακύρωση τρέχουσας λειτουργίας\n"
+":: και αναβάθμιση αυτών των πακέτων τώρα;"
+
+#, c-format
+msgid "failed to init transaction (%s)\n"
+msgstr "αποτυχία εκκίνησης διεκπεραίωσης (%s)\n"
+
+#, c-format
+msgid ""
+" if you're sure a package manager is not already\n"
+" running, you can remove %s\n"
+msgstr ""
+" εάν είσαι βέβαιος πως δεν εκτελείται διαχειριστής πακέτων,\n"
+" μπορείς να διαγράψεις το %s\n"
+
+#, c-format
+msgid " try running pacman-db-upgrade\n"
+msgstr " δοκίμασε pacman-db-upgrade\n"
+
+#, c-format
+msgid "failed to release transaction (%s)\n"
+msgstr "αποτυχία άφεσης διεκπεραίωσης (%s)\n"
+
+#, c-format
+msgid "None"
+msgstr "Ουδέν"
+
+#, c-format
+msgid "insufficient columns available for table display\n"
+msgstr ""
+
+#, c-format
+msgid "Name"
+msgstr ""
+
+#, c-format
+msgid "Old Version"
+msgstr ""
+
+#, c-format
+msgid "New Version"
+msgstr ""
+
+#, c-format
+msgid "Size"
+msgstr ""
+
+#, c-format
+msgid "Targets (%d):"
+msgstr "Στόχοι (%d):"
+
+#, c-format
+msgid "Remove (%d):"
+msgstr "Κατάργηση (%d):"
+
+#, fuzzy, c-format
+msgid "Total Download Size: %.2f %s\n"
+msgstr "Σύνολο λήψης : %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Installed Size: %.2f %s\n"
+msgstr "Σύνολο εγκατάστασης: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Net Upgrade Size: %.2f %s\n"
+msgstr "Σύνολο λήψης : %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Removed Size: %.2f %s\n"
+msgstr "Σύνολο κατάργησης : %.2f MB\n"
+
+#, c-format
+msgid "New optional dependencies for %s\n"
+msgstr "Νέες προαιρετικές εξαρτήσεις του %s\n"
+
+#, c-format
+msgid "Optional dependencies for %s\n"
+msgstr "Προαιρετικές εξαρτήσεις του %s\n"
+
+#, c-format
+msgid "Repository %s\n"
+msgstr "Αποθήκη %s\n"
+
+#, c-format
+msgid "Invalid value: %d is not between %d and %d\n"
+msgstr "Άκυρη τιμή: το %d δεν βρίσκεται μεταξύ %d και %d\n"
+
+#, c-format
+msgid "Invalid number: %s\n"
+msgstr "Άκυρος αριθμός: %s\n"
+
+#, c-format
+msgid "Enter a selection (default=all)"
+msgstr "Εισαγωγή επιλογής (προεπιλογή=όλα)"
+
+#, c-format
+msgid "Enter a number (default=%d)"
+msgstr "Εισαγωγή αριθμού (προεπιλογή=%d)"
+
+#, c-format
+msgid "[Y/n]"
+msgstr "[Y/n]"
+
+#, c-format
+msgid "[y/N]"
+msgstr "[y/N]"
+
+#, c-format
+msgid "Y"
+msgstr "Y"
+
+#, c-format
+msgid "YES"
+msgstr "ΝΑΙ"
+
+#, c-format
+msgid "N"
+msgstr "N"
+
+#, c-format
+msgid "NO"
+msgstr "ΟΧΙ"
+
+#, c-format
+msgid "failed to allocate string\n"
+msgstr "αποτυχία δέσμευσης συμβολοσειράς\n"
+
+#, c-format
+msgid "error: %s"
+msgstr "σφάλμα: %s"
+
+#, c-format
+msgid "warning: %s"
+msgstr "προσοχή: %s"
+
+#, c-format
+msgid "error: "
+msgstr "σφάλμα: "
+
+#, c-format
+msgid "warning: "
+msgstr "προσοχή: "
+
diff --git a/src/pacman/po/en_GB.po b/src/pacman/po/en_GB.po
new file mode 100644
index 00000000..bc89c896
--- /dev/null
+++ b/src/pacman/po/en_GB.po
@@ -0,0 +1,1117 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Pacman Development Team <pacman-dev@archlinux.org>
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Arch Linux Pacman package manager\n"
+"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
+"POT-Creation-Date: 2011-06-23 21:59-0500\n"
+"PO-Revision-Date: 2011-03-28 02:45+0000\n"
+"Last-Translator: toofishes <dpmcgee@gmail.com>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: en_GB\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"
+
+#, c-format
+msgid "checking dependencies...\n"
+msgstr "checking dependencies...\n"
+
+#, c-format
+msgid "checking for file conflicts...\n"
+msgstr "checking for file conflicts...\n"
+
+#, c-format
+msgid "resolving dependencies...\n"
+msgstr "resolving dependencies...\n"
+
+#, c-format
+msgid "looking for inter-conflicts...\n"
+msgstr "looking for inter-conflicts...\n"
+
+#, c-format
+msgid "installing %s...\n"
+msgstr "installing %s...\n"
+
+#, c-format
+msgid "removing %s...\n"
+msgstr "removing %s...\n"
+
+#, c-format
+msgid "upgrading %s...\n"
+msgstr "upgrading %s...\n"
+
+#, c-format
+msgid "checking package integrity...\n"
+msgstr "checking package integrity...\n"
+
+#, c-format
+msgid "checking delta integrity...\n"
+msgstr "checking delta integrity...\n"
+
+#, c-format
+msgid "applying deltas...\n"
+msgstr "applying deltas...\n"
+
+#, c-format
+msgid "generating %s with %s... "
+msgstr "generating %s with %s... "
+
+#, c-format
+msgid "success!\n"
+msgstr "success!\n"
+
+#, c-format
+msgid "failed.\n"
+msgstr "failed.\n"
+
+#, c-format
+msgid ":: Retrieving packages from %s...\n"
+msgstr ":: Retrieving packages from %s...\n"
+
+#, c-format
+msgid "checking available disk space...\n"
+msgstr "checking available disk space...\n"
+
+#, c-format
+msgid ":: %s is in IgnorePkg/IgnoreGroup. Install anyway?"
+msgstr ":: %s is in IgnorePkg/IgnoreGroup. Install anyway?"
+
+#, c-format
+msgid ":: Replace %s with %s/%s?"
+msgstr ":: Replace %s with %s/%s?"
+
+#, c-format
+msgid ":: %s and %s are in conflict. Remove %s?"
+msgstr ":: %s and %s are in conflict. Remove %s?"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s). Remove %s?"
+msgstr ":: %s and %s are in conflict (%s). Remove %s?"
+
+#, c-format
+msgid ""
+":: The following package cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgid_plural ""
+":: The following packages cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgstr[0] ""
+":: The following package cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgstr[1] ""
+":: The following packages cannot be upgraded due to unresolvable "
+"dependencies:\n"
+
+#, c-format
+msgid "Do you want to skip the above package for this upgrade?"
+msgid_plural "Do you want to skip the above packages for this upgrade?"
+msgstr[0] "Do you want to skip the above package for this upgrade?"
+msgstr[1] "Do you want to skip the above packages for this upgrade?"
+
+#, c-format
+msgid ":: There are %d providers available for %s:\n"
+msgstr ":: There are %d providers available for %s:\n"
+
+#, c-format
+msgid ":: %s-%s: local version is newer. Upgrade anyway?"
+msgstr ":: %s-%s: local version is newer. Upgrade anyway?"
+
+#, c-format
+msgid ":: File %s is corrupted. Do you want to delete it?"
+msgstr ":: File %s is corrupted. Do you want to delete it?"
+
+#, c-format
+msgid "installing"
+msgstr "installing"
+
+#, c-format
+msgid "upgrading"
+msgstr "upgrading"
+
+#, c-format
+msgid "removing"
+msgstr "removing"
+
+#, c-format
+msgid "checking for file conflicts"
+msgstr "checking for file conflicts"
+
+#, c-format
+msgid "checking available disk space"
+msgstr "checking available disk space"
+
+#, c-format
+msgid "checking package integrity"
+msgstr "checking package integrity"
+
+#, c-format
+msgid "downloading %s...\n"
+msgstr "downloading %s...\n"
+
+#, c-format
+msgid "malloc failure: could not allocate %zd bytes\n"
+msgstr "malloc failure: could not allocate %zd bytes\n"
+
+#, c-format
+msgid "could not get current working directory\n"
+msgstr "could not get current working directory\n"
+
+#, c-format
+msgid "could not chdir to download directory %s\n"
+msgstr "could not chdir to download directory %s\n"
+
+#, c-format
+msgid "running XferCommand: fork failed!\n"
+msgstr "running XferCommand: fork failed!\n"
+
+#, c-format
+msgid "could not change directory to %s (%s)\n"
+msgstr "could not change directory to %s (%s)\n"
+
+#, c-format
+msgid "invalid value for 'CleanMethod' : '%s'\n"
+msgstr "invalid value for 'CleanMethod' : '%s'\n"
+
+#, c-format
+msgid ""
+"config file %s, line %d: directive '%s' in section '%s' not recognized.\n"
+msgstr ""
+"config file %s, line %d: directive '%s' in section '%s' not recognized.\n"
+
+#, fuzzy, c-format
+msgid "config file %s, line %d: directive '%s' has invalid value '%s'\n"
+msgstr "config file %s, line %d: directive '%s' needs a value\n"
+
+#, c-format
+msgid ""
+"The mirror '%s' contains the $arch variable, but no Architecture is "
+"defined.\n"
+msgstr ""
+"The mirror '%s' contains the $arch variable, but no Architecture is "
+"defined.\n"
+
+#, c-format
+msgid "could not add server URL to database '%s': %s (%s)\n"
+msgstr "could not add server URL to database '%s': %s (%s)\n"
+
+#, c-format
+msgid "failed to initialize alpm library (%s)\n"
+msgstr "failed to initialise alpm library (%s)\n"
+
+#, c-format
+msgid "problem setting logfile '%s' (%s)\n"
+msgstr "problem setting logfile '%s' (%s)\n"
+
+#, fuzzy, c-format
+msgid "problem setting gpgdir '%s' (%s)\n"
+msgstr "problem setting rootdir '%s' (%s)\n"
+
+#, c-format
+msgid "could not register '%s' database (%s)\n"
+msgstr "could not register '%s' database (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not set verify option for database '%s' (%s)\n"
+msgstr "could not add server URL to database '%s': %s (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not add mirror '%s' to database '%s' (%s)\n"
+msgstr "could not add server URL to database '%s': %s (%s)\n"
+
+#, c-format
+msgid "config parsing exceeded max recursion depth of %d.\n"
+msgstr ""
+
+#, c-format
+msgid "config file %s could not be read.\n"
+msgstr "config file %s could not be read.\n"
+
+#, c-format
+msgid "config file %s, line %d: bad section name.\n"
+msgstr "config file %s, line %d: bad section name.\n"
+
+#, c-format
+msgid "config file %s, line %d: syntax error in config file- missing key.\n"
+msgstr "config file %s, line %d: syntax error in config file- missing key.\n"
+
+#, c-format
+msgid "config file %s, line %d: All directives must belong to a section.\n"
+msgstr "config file %s, line %d: All directives must belong to a section.\n"
+
+#, c-format
+msgid "config file %s, line %d: directive '%s' needs a value\n"
+msgstr "config file %s, line %d: directive '%s' needs a value\n"
+
+#, c-format
+msgid "no targets specified (use -h for help)\n"
+msgstr "no targets specified (use -h for help)\n"
+
+#, c-format
+msgid "no install reason specified (use -h for help)\n"
+msgstr "no install reason specified (use -h for help)\n"
+
+#, c-format
+msgid "could not set install reason for package %s (%s)\n"
+msgstr "could not set install reason for package %s (%s)\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'installed as dependency'\n"
+msgstr "%s: install reason has been set to 'installed as dependency'\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'explicitly installed'\n"
+msgstr "%s: install reason has been set to 'explicitly installed'\n"
+
+#, c-format
+msgid "Explicitly installed"
+msgstr "Explicitly installed"
+
+#, c-format
+msgid "Installed as a dependency for another package"
+msgstr "Installed as a dependency for another package"
+
+#, c-format
+msgid "Unknown"
+msgstr "Unknown"
+
+#, c-format
+msgid "Repository :"
+msgstr "Repository :"
+
+#, c-format
+msgid "Name :"
+msgstr "Name :"
+
+#, c-format
+msgid "Version :"
+msgstr "Version :"
+
+#, c-format
+msgid "URL :"
+msgstr "URL :"
+
+#, c-format
+msgid "Licenses :"
+msgstr "Licences :"
+
+#, c-format
+msgid "Groups :"
+msgstr "Groups :"
+
+#, c-format
+msgid "Provides :"
+msgstr "Provides :"
+
+#, c-format
+msgid "Depends On :"
+msgstr "Depends On :"
+
+#, c-format
+msgid "Optional Deps :"
+msgstr "Optional Deps :"
+
+#, c-format
+msgid "Required By :"
+msgstr "Required By :"
+
+#, c-format
+msgid "Conflicts With :"
+msgstr "Conflicts With :"
+
+#, c-format
+msgid "Replaces :"
+msgstr "Replaces :"
+
+#, fuzzy, c-format
+msgid "Download Size : %6.2f %s\n"
+msgstr "Download Size : %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Compressed Size: %6.2f %s\n"
+msgstr "Compressed Size: %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Installed Size : %6.2f %s\n"
+msgstr "Installed Size : %6.2f K\n"
+
+#, c-format
+msgid "Packager :"
+msgstr "Packager :"
+
+#, c-format
+msgid "Architecture :"
+msgstr "Architecture :"
+
+#, c-format
+msgid "Build Date :"
+msgstr "Build Date :"
+
+#, c-format
+msgid "Install Date :"
+msgstr "Install Date :"
+
+#, c-format
+msgid "Install Reason :"
+msgstr "Install Reason :"
+
+#, c-format
+msgid "Install Script :"
+msgstr "Install Script :"
+
+#, c-format
+msgid "Yes"
+msgstr "Yes"
+
+#, c-format
+msgid "No"
+msgstr "No"
+
+#, c-format
+msgid "MD5 Sum :"
+msgstr "MD5 Sum :"
+
+#, c-format
+msgid "Description :"
+msgstr "Description :"
+
+#, c-format
+msgid "could not calculate checksums for %s\n"
+msgstr "could not calculate checksums for %s\n"
+
+#, c-format
+msgid "Backup Files:\n"
+msgstr "Backup Files:\n"
+
+#, c-format
+msgid "(none)\n"
+msgstr "(none)\n"
+
+#, c-format
+msgid "no changelog available for '%s'.\n"
+msgstr "no changelog available for '%s'.\n"
+
+#, c-format
+msgid "options"
+msgstr "options"
+
+#, c-format
+msgid "file(s)"
+msgstr "file(s)"
+
+#, c-format
+msgid "package(s)"
+msgstr "package(s)"
+
+#, c-format
+msgid "usage"
+msgstr "usage"
+
+#, c-format
+msgid "operation"
+msgstr "operation"
+
+#, c-format
+msgid "operations:\n"
+msgstr "operations:\n"
+
+#, c-format
+msgid ""
+"\n"
+"use '%s {-h --help}' with an operation for available options\n"
+msgstr ""
+"\n"
+"use '%s {-h --help}' with an operation for available options\n"
+
+#, c-format
+msgid ""
+" -c, --cascade remove packages and all packages that depend on them\n"
+msgstr ""
+" -c, --cascade remove packages and all packages that depend on them\n"
+
+#, c-format
+msgid " -n, --nosave remove configuration files\n"
+msgstr " -n, --nosave remove configuration files\n"
+
+#, c-format
+msgid ""
+" -s, --recursive remove unnecessary dependencies\n"
+" (-ss includes explicitly installed dependencies)\n"
+msgstr ""
+" -s, --recursive remove unnecessary dependencies\n"
+" (-ss includes explicitly installed dependencies)\n"
+
+#, c-format
+msgid " -u, --unneeded remove unneeded packages\n"
+msgstr " -u, --unneeded remove unneeded packages\n"
+
+#, c-format
+msgid " -c, --changelog view the changelog of a package\n"
+msgstr " -c, --changelog view the changelog of a package\n"
+
+#, c-format
+msgid ""
+" -d, --deps list packages installed as dependencies [filter]\n"
+msgstr ""
+" -d, --deps list packages installed as dependencies [filter]\n"
+
+#, c-format
+msgid " -e, --explicit list packages explicitly installed [filter]\n"
+msgstr " -e, --explicit list packages explicitly installed [filter]\n"
+
+#, c-format
+msgid " -g, --groups view all members of a package group\n"
+msgstr " -g, --groups view all members of a package group\n"
+
+#, c-format
+msgid ""
+" -i, --info view package information (-ii for backup files)\n"
+msgstr ""
+" -i, --info view package information (-ii for backup files)\n"
+
+#, c-format
+msgid ""
+" -k, --check check that the files owned by the package(s) are "
+"present\n"
+msgstr ""
+" -k, --check check that the files owned by the package(s) are "
+"present\n"
+
+#, c-format
+msgid " -l, --list list the contents of the queried package\n"
+msgstr " -l, --list list the contents of the queried package\n"
+
+#, c-format
+msgid ""
+" -m, --foreign list installed packages not found in sync db(s) "
+"[filter]\n"
+msgstr ""
+" -m, --foreign list installed packages not found in sync db(s) "
+"[filter]\n"
+
+#, c-format
+msgid " -o, --owns <file> query the package that owns <file>\n"
+msgstr " -o, --owns <file> query the package that owns <file>\n"
+
+#, c-format
+msgid " -p, --file <package> query a package file instead of the database\n"
+msgstr " -p, --file <package> query a package file instead of the database\n"
+
+#, c-format
+msgid " -q, --quiet show less information for query and search\n"
+msgstr " -q, --quiet show less information for query and search\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search locally-installed packages for matching "
+"strings\n"
+msgstr ""
+" -s, --search <regex> search locally-installed packages for matching "
+"strings\n"
+
+#, c-format
+msgid ""
+" -t, --unrequired list packages not required by any package [filter]\n"
+msgstr ""
+" -t, --unrequired list packages not required by any package [filter]\n"
+
+#, c-format
+msgid " -u, --upgrades list outdated packages [filter]\n"
+msgstr " -u, --upgrades list outdated packages [filter]\n"
+
+#, c-format
+msgid ""
+" -c, --clean remove old packages from cache directory (-cc for "
+"all)\n"
+msgstr ""
+" -c, --clean remove old packages from cache directory (-cc for "
+"all)\n"
+
+#, c-format
+msgid " -i, --info view package information\n"
+msgstr " -i, --info view package information\n"
+
+#, c-format
+msgid " -l, --list <repo> view a list of packages in a repo\n"
+msgstr " -l, --list <repo> view a list of packages in a repo\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search remote repositories for matching strings\n"
+msgstr ""
+" -s, --search <regex> search remote repositories for matching strings\n"
+
+#, c-format
+msgid ""
+" -u, --sysupgrade upgrade installed packages (-uu allows downgrade)\n"
+msgstr ""
+" -u, --sysupgrade upgrade installed packages (-uu allows downgrade)\n"
+
+#, c-format
+msgid ""
+" -w, --downloadonly download packages but do not install/upgrade "
+"anything\n"
+msgstr ""
+" -w, --downloadonly download packages but do not install/upgrade "
+"anything\n"
+
+#, c-format
+msgid ""
+" -y, --refresh download fresh package databases from the server\n"
+msgstr ""
+" -y, --refresh download fresh package databases from the server\n"
+
+#, c-format
+msgid " --needed don't reinstall up to date packages\n"
+msgstr " --needed don't reinstall up to date packages\n"
+
+#, c-format
+msgid " --asdeps mark packages as non-explicitly installed\n"
+msgstr " --asdeps mark packages as non-explicitly installed\n"
+
+#, c-format
+msgid " --asexplicit mark packages as explicitly installed\n"
+msgstr " --asexplicit mark packages as explicitly installed\n"
+
+#, c-format
+msgid " -f, --force force install, overwrite conflicting files\n"
+msgstr " -f, --force force install, overwrite conflicting files\n"
+
+#, c-format
+msgid " --asdeps install packages as non-explicitly installed\n"
+msgstr " --asdeps install packages as non-explicitly installed\n"
+
+#, c-format
+msgid " --asexplicit install packages as explicitly installed\n"
+msgstr " --asexplicit install packages as explicitly installed\n"
+
+#, c-format
+msgid ""
+" --ignore <pkg> ignore a package upgrade (can be used more than "
+"once)\n"
+msgstr ""
+" --ignore <pkg> ignore a package upgrade (can be used more than "
+"once)\n"
+
+#, c-format
+msgid ""
+" --ignoregroup <grp>\n"
+" ignore a group upgrade (can be used more than once)\n"
+msgstr ""
+" --ignoregroup <grp>\n"
+" ignore a group upgrade (can be used more than once)\n"
+
+#, c-format
+msgid ""
+" -d, --nodeps skip dependency version checks (-dd to skip all "
+"checks)\n"
+msgstr ""
+" -d, --nodeps skip dependency version checks (-dd to skip all "
+"checks)\n"
+
+#, c-format
+msgid ""
+" -k, --dbonly only modify database entries, not package files\n"
+msgstr ""
+" -k, --dbonly only modify database entries, not package files\n"
+
+#, c-format
+msgid ""
+" --noprogressbar do not show a progress bar when downloading files\n"
+msgstr ""
+" --noprogressbar do not show a progress bar when downloading files\n"
+
+#, c-format
+msgid ""
+" --noscriptlet do not execute the install scriptlet if one exists\n"
+msgstr ""
+" --noscriptlet do not execute the install scriptlet if one exists\n"
+
+#, c-format
+msgid ""
+" --print print the targets instead of performing the "
+"operation\n"
+msgstr ""
+" --print print the targets instead of performing the "
+"operation\n"
+
+#, c-format
+msgid ""
+" --print-format <string>\n"
+" specify how the targets should be printed\n"
+msgstr ""
+" --print-format <string>\n"
+" specify how the targets should be printed\n"
+
+#, c-format
+msgid " -b, --dbpath <path> set an alternate database location\n"
+msgstr " -b, --dbpath <path> set an alternate database location\n"
+
+#, c-format
+msgid " -r, --root <path> set an alternate installation root\n"
+msgstr " -r, --root <path> set an alternate installation root\n"
+
+#, c-format
+msgid " -v, --verbose be verbose\n"
+msgstr " -v, --verbose be verbose\n"
+
+#, c-format
+msgid " --arch <arch> set an alternate architecture\n"
+msgstr " --arch <arch> set an alternate architecture\n"
+
+#, c-format
+msgid " --cachedir <dir> set an alternate package cache location\n"
+msgstr " --cachedir <dir> set an alternate package cache location\n"
+
+#, c-format
+msgid " --config <path> set an alternate configuration file\n"
+msgstr " --config <path> set an alternate configuration file\n"
+
+#, c-format
+msgid " --debug display debug messages\n"
+msgstr " --debug display debug messages\n"
+
+#, fuzzy, c-format
+msgid " --gpgdir <path> set an alternate home directory for GnuPG\n"
+msgstr " --logfile <path> set an alternate log file\n"
+
+#, c-format
+msgid " --logfile <path> set an alternate log file\n"
+msgstr " --logfile <path> set an alternate log file\n"
+
+#, c-format
+msgid " --noconfirm do not ask for any confirmation\n"
+msgstr " --noconfirm do not ask for any confirmation\n"
+
+#, c-format
+msgid ""
+" This program may be freely redistributed under\n"
+" the terms of the GNU General Public License.\n"
+msgstr ""
+" This program may be freely redistributed under\n"
+" the terms of the GNU General Public License.\n"
+
+#, c-format
+msgid "'%s' is not a valid debug level\n"
+msgstr "'%s' is not a valid debug level\n"
+
+#, c-format
+msgid "only one operation may be used at a time\n"
+msgstr "only one operation may be used at a time\n"
+
+#, c-format
+msgid "invalid option\n"
+msgstr "invalid option\n"
+
+#, c-format
+msgid "buffer overflow detected in arg parsing\n"
+msgstr "buffer overflow detected in arg parsing\n"
+
+#, c-format
+msgid "failed to reopen stdin for reading: (%s)\n"
+msgstr "failed to reopen stdin for reading: (%s)\n"
+
+#, c-format
+msgid "you cannot perform this operation unless you are root.\n"
+msgstr "you cannot perform this operation unless you are root.\n"
+
+#, c-format
+msgid "no operation specified (use -h for help)\n"
+msgstr "no operation specified (use -h for help)\n"
+
+#, c-format
+msgid "%s is owned by %s %s\n"
+msgstr "%s is owned by %s %s\n"
+
+#, c-format
+msgid "no file was specified for --owns\n"
+msgstr "no file was specified for --owns\n"
+
+#, c-format
+msgid "failed to find '%s' in PATH: %s\n"
+msgstr "failed to find '%s' in PATH: %s\n"
+
+#, c-format
+msgid "failed to read file '%s': %s\n"
+msgstr "failed to read file '%s': %s\n"
+
+#, c-format
+msgid "cannot determine ownership of directory '%s'\n"
+msgstr "cannot determine ownership of directory '%s'\n"
+
+#, c-format
+msgid "cannot determine real path for '%s': %s\n"
+msgstr "cannot determine real path for '%s': %s\n"
+
+#, c-format
+msgid "path too long: %s%s\n"
+msgstr "path too long: %s%s\n"
+
+#, c-format
+msgid "No package owns %s\n"
+msgstr "No package owns %s\n"
+
+#, c-format
+msgid "group \"%s\" was not found\n"
+msgstr "group \"%s\" was not found\n"
+
+#, c-format
+msgid "%s: %d total file, "
+msgid_plural "%s: %d total files, "
+msgstr[0] "%s: %d total file, "
+msgstr[1] "%s: %d total files, "
+
+#, c-format
+msgid "%d missing file\n"
+msgid_plural "%d missing files\n"
+msgstr[0] "%d missing file\n"
+msgstr[1] "%d missing files\n"
+
+#, c-format
+msgid "no usable package repositories configured.\n"
+msgstr "no usable package repositories configured.\n"
+
+#, c-format
+msgid "package \"%s\" not found\n"
+msgstr "package \"%s\" not found\n"
+
+#, c-format
+msgid "failed to prepare transaction (%s)\n"
+msgstr "failed to prepare transaction (%s)\n"
+
+#, c-format
+msgid ":: package %s does not have a valid architecture\n"
+msgstr ":: package %s does not have a valid architecture\n"
+
+#, c-format
+msgid ":: %s: requires %s\n"
+msgstr ":: %s: requires %s\n"
+
+#, c-format
+msgid "%s is designated as a HoldPkg.\n"
+msgstr "%s is designated as a HoldPkg.\n"
+
+#, c-format
+msgid "HoldPkg was found in target list. Do you want to continue?"
+msgstr "HoldPkg was found in target list. Do you want to continue?"
+
+#, c-format
+msgid " there is nothing to do\n"
+msgstr " there is nothing to do\n"
+
+#, c-format
+msgid "Do you want to remove these packages?"
+msgstr "Do you want to remove these packages?"
+
+#, c-format
+msgid "failed to commit transaction (%s)\n"
+msgstr "failed to commit transaction (%s)\n"
+
+#, c-format
+msgid "could not access database directory\n"
+msgstr "could not access database directory\n"
+
+#, c-format
+msgid "could not remove %s\n"
+msgstr "could not remove %s\n"
+
+#, c-format
+msgid "Do you want to remove %s?"
+msgstr "Do you want to remove %s?"
+
+#, c-format
+msgid "Database directory: %s\n"
+msgstr "Database directory: %s\n"
+
+#, c-format
+msgid "Do you want to remove unused repositories?"
+msgstr "Do you want to remove unused repositories?"
+
+#, c-format
+msgid "Database directory cleaned up\n"
+msgstr "Database directory cleaned up\n"
+
+#, c-format
+msgid "Cache directory: %s\n"
+msgstr "Cache directory: %s\n"
+
+#, c-format
+msgid "Packages to keep:\n"
+msgstr "Packages to keep:\n"
+
+#, c-format
+msgid " All locally installed packages\n"
+msgstr " All locally installed packages\n"
+
+#, c-format
+msgid " All current sync database packages\n"
+msgstr " All current sync database packages\n"
+
+#, c-format
+msgid "Do you want to remove all other packages from cache?"
+msgstr "Do you want to remove all other packages from cache?"
+
+#, c-format
+msgid "removing old packages from cache...\n"
+msgstr "removing old packages from cache...\n"
+
+#, c-format
+msgid "Do you want to remove ALL files from cache?"
+msgstr "Do you want to remove ALL files from cache?"
+
+#, c-format
+msgid "removing all files from cache...\n"
+msgstr "removing all files from cache...\n"
+
+#, c-format
+msgid "could not access cache directory %s\n"
+msgstr "could not access cache directory %s\n"
+
+#, c-format
+msgid "File %s does not seem to be a valid package, remove it?"
+msgstr "File %s does not seem to be a valid package, remove it?"
+
+#, c-format
+msgid "failed to update %s (%s)\n"
+msgstr "failed to update %s (%s)\n"
+
+#, c-format
+msgid " %s is up to date\n"
+msgstr " %s is up to date\n"
+
+#, c-format
+msgid "failed to synchronize any databases\n"
+msgstr "failed to synchronise any databases\n"
+
+#, c-format
+msgid "installed"
+msgstr "installed"
+
+#, c-format
+msgid "repository '%s' does not exist\n"
+msgstr "repository '%s' does not exist\n"
+
+#, c-format
+msgid "package '%s' was not found in repository '%s'\n"
+msgstr "package '%s' was not found in repository '%s'\n"
+
+#, c-format
+msgid "package '%s' was not found\n"
+msgstr "package '%s' was not found\n"
+
+#, c-format
+msgid "repository \"%s\" was not found.\n"
+msgstr "repository \"%s\" was not found.\n"
+
+#, c-format
+msgid "skipping target: %s\n"
+msgstr "skipping target: %s\n"
+
+#, c-format
+msgid "target not found: %s\n"
+msgstr "target not found: %s\n"
+
+#, c-format
+msgid ":: There are %d members in group %s:\n"
+msgstr ":: There are %d members in group %s:\n"
+
+#, c-format
+msgid "database not found: %s\n"
+msgstr "database not found: %s\n"
+
+#, c-format
+msgid ":: Starting full system upgrade...\n"
+msgstr ":: Starting full system upgrade...\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict\n"
+msgstr ":: %s and %s are in conflict\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s)\n"
+msgstr ":: %s and %s are in conflict (%s)\n"
+
+#, c-format
+msgid "Proceed with download?"
+msgstr "Proceed with download?"
+
+#, c-format
+msgid "Proceed with installation?"
+msgstr "Proceed with installation?"
+
+#, c-format
+msgid "%s exists in both '%s' and '%s'\n"
+msgstr "%s exists in both '%s' and '%s'\n"
+
+#, c-format
+msgid "%s: %s exists in filesystem\n"
+msgstr "%s: %s exists in filesystem\n"
+
+#, c-format
+msgid "%s is invalid or corrupted\n"
+msgstr "%s is invalid or corrupted\n"
+
+#, c-format
+msgid "Errors occurred, no packages were upgraded.\n"
+msgstr "Errors occurred, no packages were upgraded.\n"
+
+#, c-format
+msgid ":: Synchronizing package databases...\n"
+msgstr ":: Synchronising package databases...\n"
+
+#, c-format
+msgid ":: The following packages should be upgraded first :\n"
+msgstr ":: The following packages should be upgraded first :\n"
+
+#, c-format
+msgid ""
+":: Do you want to cancel the current operation\n"
+":: and upgrade these packages now?"
+msgstr ""
+":: Do you want to cancel the current operation\n"
+":: and upgrade these packages now?"
+
+#, c-format
+msgid "failed to init transaction (%s)\n"
+msgstr "failed to init transaction (%s)\n"
+
+#, c-format
+msgid ""
+" if you're sure a package manager is not already\n"
+" running, you can remove %s\n"
+msgstr ""
+" if you're sure a package manager is not already\n"
+" running, you can remove %s\n"
+
+#, c-format
+msgid " try running pacman-db-upgrade\n"
+msgstr " try running pacman-db-upgrade\n"
+
+#, c-format
+msgid "failed to release transaction (%s)\n"
+msgstr "failed to release transaction (%s)\n"
+
+#, c-format
+msgid "None"
+msgstr "None"
+
+#, c-format
+msgid "insufficient columns available for table display\n"
+msgstr ""
+
+#, c-format
+msgid "Name"
+msgstr ""
+
+#, c-format
+msgid "Old Version"
+msgstr ""
+
+#, c-format
+msgid "New Version"
+msgstr ""
+
+#, c-format
+msgid "Size"
+msgstr ""
+
+#, c-format
+msgid "Targets (%d):"
+msgstr "Targets (%d):"
+
+#, c-format
+msgid "Remove (%d):"
+msgstr "Remove (%d):"
+
+#, fuzzy, c-format
+msgid "Total Download Size: %.2f %s\n"
+msgstr "Total Download Size: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Installed Size: %.2f %s\n"
+msgstr "Total Installed Size: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Net Upgrade Size: %.2f %s\n"
+msgstr "Total Download Size: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Removed Size: %.2f %s\n"
+msgstr "Total Removed Size: %.2f MB\n"
+
+#, c-format
+msgid "New optional dependencies for %s\n"
+msgstr "New optional dependencies for %s\n"
+
+#, c-format
+msgid "Optional dependencies for %s\n"
+msgstr "Optional dependencies for %s\n"
+
+#, c-format
+msgid "Repository %s\n"
+msgstr "Repository %s\n"
+
+#, c-format
+msgid "Invalid value: %d is not between %d and %d\n"
+msgstr "Invalid value: %d is not between %d and %d\n"
+
+#, c-format
+msgid "Invalid number: %s\n"
+msgstr "Invalid number: %s\n"
+
+#, c-format
+msgid "Enter a selection (default=all)"
+msgstr "Enter a selection (default=all)"
+
+#, c-format
+msgid "Enter a number (default=%d)"
+msgstr "Enter a number (default=%d)"
+
+#, c-format
+msgid "[Y/n]"
+msgstr "[Y/n]"
+
+#, c-format
+msgid "[y/N]"
+msgstr "[y/N]"
+
+#, c-format
+msgid "Y"
+msgstr "Y"
+
+#, c-format
+msgid "YES"
+msgstr "YES"
+
+#, c-format
+msgid "N"
+msgstr "N"
+
+#, c-format
+msgid "NO"
+msgstr "NO"
+
+#, c-format
+msgid "failed to allocate string\n"
+msgstr "failed to allocate string\n"
+
+#, c-format
+msgid "error: %s"
+msgstr "error: %s"
+
+#, c-format
+msgid "warning: %s"
+msgstr "warning: %s"
+
+#, c-format
+msgid "error: "
+msgstr "error: "
+
+#, c-format
+msgid "warning: "
+msgstr "warning: "
+
diff --git a/src/pacman/po/es.po b/src/pacman/po/es.po
new file mode 100644
index 00000000..5a0e839c
--- /dev/null
+++ b/src/pacman/po/es.po
@@ -0,0 +1,1173 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Pacman Development Team <pacman-dev@archlinux.org>
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Arch Linux Pacman package manager\n"
+"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
+"POT-Creation-Date: 2011-06-23 21:59-0500\n"
+"PO-Revision-Date: 2011-04-01 02:37+0000\n"
+"Last-Translator: Traumness <traumness@gmail.com>\n"
+"Language-Team: Spanish (Castilian) <>\n"
+"Language: es\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"
+
+#, c-format
+msgid "checking dependencies...\n"
+msgstr "comprobando dependencias...\n"
+
+#, c-format
+msgid "checking for file conflicts...\n"
+msgstr "comprobando posibles conflictos entre archivos...\n"
+
+#, c-format
+msgid "resolving dependencies...\n"
+msgstr "resolviendo dependencias...\n"
+
+#, c-format
+msgid "looking for inter-conflicts...\n"
+msgstr "verificando conflictos...\n"
+
+#, c-format
+msgid "installing %s...\n"
+msgstr "instalando %s...\n"
+
+#, c-format
+msgid "removing %s...\n"
+msgstr "quitando %s...\n"
+
+#, c-format
+msgid "upgrading %s...\n"
+msgstr "actualizando %s... \n"
+
+#, c-format
+msgid "checking package integrity...\n"
+msgstr "verificando la integridad de los paquetes...\n"
+
+#, c-format
+msgid "checking delta integrity...\n"
+msgstr "verificando la integridad diferencial...\n"
+
+#, c-format
+msgid "applying deltas...\n"
+msgstr "aplicando los diferenciales...\n"
+
+#, c-format
+msgid "generating %s with %s... "
+msgstr "generando %s con %s... "
+
+#, c-format
+msgid "success!\n"
+msgstr "¡éxito!\n"
+
+#, c-format
+msgid "failed.\n"
+msgstr "falló.\n"
+
+#, c-format
+msgid ":: Retrieving packages from %s...\n"
+msgstr ":: Descargando paquetes desde %s...\n"
+
+#, c-format
+msgid "checking available disk space...\n"
+msgstr "verificando el espacio disponible en disco...\n"
+
+#, c-format
+msgid ":: %s is in IgnorePkg/IgnoreGroup. Install anyway?"
+msgstr ":: %s está en IgnorePkg/IgnoreGroup. ¿Instalar de todas formas?"
+
+#, c-format
+msgid ":: Replace %s with %s/%s?"
+msgstr ":: ¿Reemplazar %s con %s/%s? "
+
+#, c-format
+msgid ":: %s and %s are in conflict. Remove %s?"
+msgstr ":: %s y %s están en conflicto. ¿Quitar %s?"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s). Remove %s?"
+msgstr ":: %s y %s están en conflicto (%s). ¿Quitar %s?"
+
+#, c-format
+msgid ""
+":: The following package cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgid_plural ""
+":: The following packages cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgstr[0] ""
+":: El siguiente paquete no se puede actualizar debido a dependencias que no "
+"se pudieron resolver:\n"
+msgstr[1] ""
+":: Los siguientes paquetes no pueden ser actualizados debido a dependencias "
+"que no se pudieron resolver:\n"
+
+#, c-format
+msgid "Do you want to skip the above package for this upgrade?"
+msgid_plural "Do you want to skip the above packages for this upgrade?"
+msgstr[0] "¿Quiere omitir el siguiente paquete para esta actualización?"
+msgstr[1] "¿Quiere omitir los siguientes paquetes para esta actualización?"
+
+#, c-format
+msgid ":: There are %d providers available for %s:\n"
+msgstr ":: Existen %d proveedores disponibles para %s:\n"
+
+#, c-format
+msgid ":: %s-%s: local version is newer. Upgrade anyway?"
+msgstr ""
+":: %s-%s: la versión local es más reciente. ¿Actualizar de todas formas?"
+
+#, c-format
+msgid ":: File %s is corrupted. Do you want to delete it?"
+msgstr ":: El archivo %s está dañado. ¿Desea eliminarlo?"
+
+#, c-format
+msgid "installing"
+msgstr "instalando"
+
+#, c-format
+msgid "upgrading"
+msgstr "actualizando"
+
+#, c-format
+msgid "removing"
+msgstr "quitando"
+
+#, c-format
+msgid "checking for file conflicts"
+msgstr "verificando conflictos entre archivos"
+
+#, c-format
+msgid "checking available disk space"
+msgstr "verificando el espacio disponible en disco"
+
+#, c-format
+msgid "checking package integrity"
+msgstr "verificando la integridad de los paquetes"
+
+#, c-format
+msgid "downloading %s...\n"
+msgstr "descargando %s...\n"
+
+#, c-format
+msgid "malloc failure: could not allocate %zd bytes\n"
+msgstr "error en malloc: no se pudo reservar %zd bytes\n"
+
+#, c-format
+msgid "could not get current working directory\n"
+msgstr "no se puede acceder al directorio actual de trabajo\n"
+
+#, c-format
+msgid "could not chdir to download directory %s\n"
+msgstr "no se pudo cambiar al directorio de descargas %s\n"
+
+#, c-format
+msgid "running XferCommand: fork failed!\n"
+msgstr "ejecutando XferCommand: ¡falló la creación del proceso!\n"
+
+#, c-format
+msgid "could not change directory to %s (%s)\n"
+msgstr "No se pudo cambiar directorio a %s (%s)\n"
+
+#, c-format
+msgid "invalid value for 'CleanMethod' : '%s'\n"
+msgstr "valor no válido para 'CleanMethod' : '%s'\n"
+
+#, c-format
+msgid ""
+"config file %s, line %d: directive '%s' in section '%s' not recognized.\n"
+msgstr ""
+"archivo de configuración %s, linea %d: directiva '%s' en sección '%s' no "
+"reconocida.\n"
+
+#, fuzzy, c-format
+msgid "config file %s, line %d: directive '%s' has invalid value '%s'\n"
+msgstr ""
+"archivo de configuración %s, linea %d: directiva '%s' necesita un valor\n"
+
+#, c-format
+msgid ""
+"The mirror '%s' contains the $arch variable, but no Architecture is "
+"defined.\n"
+msgstr ""
+"El mirror '%s' contiene la variable $arch, pero no hay una arquitectura "
+"definida.\n"
+
+#, c-format
+msgid "could not add server URL to database '%s': %s (%s)\n"
+msgstr ""
+"no se pudo añadir la URL del servidor a la base de datos '%s': %s (%s)\n"
+
+#, c-format
+msgid "failed to initialize alpm library (%s)\n"
+msgstr "fallo al iniciar la biblioteca alpm (%s)\n"
+
+#, c-format
+msgid "problem setting logfile '%s' (%s)\n"
+msgstr "error al establecer logfile '%s' (%s)\n"
+
+#, fuzzy, c-format
+msgid "problem setting gpgdir '%s' (%s)\n"
+msgstr "error al definir el directorio raíz '%s' (%s)\n"
+
+#, c-format
+msgid "could not register '%s' database (%s)\n"
+msgstr "no se pudo registrar la base de datos '%s' (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not set verify option for database '%s' (%s)\n"
+msgstr ""
+"no se pudo añadir la URL del servidor a la base de datos '%s': %s (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not add mirror '%s' to database '%s' (%s)\n"
+msgstr ""
+"no se pudo añadir la URL del servidor a la base de datos '%s': %s (%s)\n"
+
+#, c-format
+msgid "config parsing exceeded max recursion depth of %d.\n"
+msgstr ""
+
+#, c-format
+msgid "config file %s could not be read.\n"
+msgstr "el archivo de configuración %s no se ha podido leer.\n"
+
+#, c-format
+msgid "config file %s, line %d: bad section name.\n"
+msgstr "archivo de configuración %s, línea %d: nombre de sección erróneo.\n"
+
+#, c-format
+msgid "config file %s, line %d: syntax error in config file- missing key.\n"
+msgstr ""
+"archivo de configuración %s, línea %d: error de sintaxis - falta la clave.\n"
+
+#, c-format
+msgid "config file %s, line %d: All directives must belong to a section.\n"
+msgstr ""
+"archivo de configuración %s, línea %d: Todas las directivas deben pertenecer "
+"a una sección.\n"
+
+#, c-format
+msgid "config file %s, line %d: directive '%s' needs a value\n"
+msgstr ""
+"archivo de configuración %s, linea %d: directiva '%s' necesita un valor\n"
+
+#, c-format
+msgid "no targets specified (use -h for help)\n"
+msgstr "no se especificaron objetivos (use -h para ayuda)\n"
+
+#, c-format
+msgid "no install reason specified (use -h for help)\n"
+msgstr "motivo de instalación no especificado (use -h para ayuda)\n"
+
+#, c-format
+msgid "could not set install reason for package %s (%s)\n"
+msgstr "no se pudo establecer motivo de instalación para el paquete %s (%s)\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'installed as dependency'\n"
+msgstr ""
+"%s: motivo de instalación ha sido establecido como 'instalado como "
+"dependencia'\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'explicitly installed'\n"
+msgstr ""
+"%s: motivo de instalación ha sido establecido a 'explícitamente instalado'\n"
+
+#, c-format
+msgid "Explicitly installed"
+msgstr "Instalado explícitamente"
+
+#, c-format
+msgid "Installed as a dependency for another package"
+msgstr "Instalado como dependencia de otro paquete"
+
+#, c-format
+msgid "Unknown"
+msgstr "Desconocido"
+
+#, c-format
+msgid "Repository :"
+msgstr "Repositorio :"
+
+#, c-format
+msgid "Name :"
+msgstr "Nombre :"
+
+#, c-format
+msgid "Version :"
+msgstr "Versión :"
+
+#, c-format
+msgid "URL :"
+msgstr "URL :"
+
+#, c-format
+msgid "Licenses :"
+msgstr "Licencias :"
+
+#, c-format
+msgid "Groups :"
+msgstr "Grupos :"
+
+#, c-format
+msgid "Provides :"
+msgstr "Provee :"
+
+#, c-format
+msgid "Depends On :"
+msgstr "Depende de :"
+
+#, c-format
+msgid "Optional Deps :"
+msgstr "Dep. opcionales :"
+
+#, c-format
+msgid "Required By :"
+msgstr "Requerido por :"
+
+#, c-format
+msgid "Conflicts With :"
+msgstr "En conflicto con :"
+
+#, c-format
+msgid "Replaces :"
+msgstr "Reemplaza a :"
+
+#, fuzzy, c-format
+msgid "Download Size : %6.2f %s\n"
+msgstr "Tamaño de descarga: %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Compressed Size: %6.2f %s\n"
+msgstr "Tamaño comprimido : %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Installed Size : %6.2f %s\n"
+msgstr "Tamaño instalado : %6.2f K\n"
+
+#, c-format
+msgid "Packager :"
+msgstr "Empaquetador :"
+
+#, c-format
+msgid "Architecture :"
+msgstr "Arquitectura :"
+
+#, c-format
+msgid "Build Date :"
+msgstr "Fecha de compilación :"
+
+#, c-format
+msgid "Install Date :"
+msgstr "Fecha de instalación :"
+
+#, c-format
+msgid "Install Reason :"
+msgstr "Motivo de la instalación:"
+
+#, c-format
+msgid "Install Script :"
+msgstr "Script de instalación:"
+
+#, c-format
+msgid "Yes"
+msgstr "Sí"
+
+#, c-format
+msgid "No"
+msgstr "No"
+
+#, c-format
+msgid "MD5 Sum :"
+msgstr "Suma MD5 :"
+
+#, c-format
+msgid "Description :"
+msgstr "Descripción :"
+
+#, c-format
+msgid "could not calculate checksums for %s\n"
+msgstr "no se pudo verificar la integridad de %s\n"
+
+#, c-format
+msgid "Backup Files:\n"
+msgstr "Archivos de respaldo:\n"
+
+#, c-format
+msgid "(none)\n"
+msgstr "(nada)\n"
+
+#, c-format
+msgid "no changelog available for '%s'.\n"
+msgstr "no hay registro de cambios disponible para '%s'.\n"
+
+#, c-format
+msgid "options"
+msgstr "opciones"
+
+#, c-format
+msgid "file(s)"
+msgstr "archivo(s)"
+
+#, c-format
+msgid "package(s)"
+msgstr "paquete(s)"
+
+#, c-format
+msgid "usage"
+msgstr "uso"
+
+#, c-format
+msgid "operation"
+msgstr "operación"
+
+#, c-format
+msgid "operations:\n"
+msgstr "operaciones:\n"
+
+#, c-format
+msgid ""
+"\n"
+"use '%s {-h --help}' with an operation for available options\n"
+msgstr ""
+"\n"
+"utilice '%s {-h --help}' con una operación para ver las opciones "
+"disponibles\n"
+
+#, c-format
+msgid ""
+" -c, --cascade remove packages and all packages that depend on them\n"
+msgstr ""
+" -c, --cascade quita los paquetes, junto a todos los que dependan de "
+"éstos\n"
+
+#, c-format
+msgid " -n, --nosave remove configuration files\n"
+msgstr " -n, --nosave elimina los archivos de configuración\n"
+
+#, c-format
+msgid ""
+" -s, --recursive remove unnecessary dependencies\n"
+" (-ss includes explicitly installed dependencies)\n"
+msgstr ""
+" -s, --recursive elimina las dependencias que no son necesarias\n"
+" (-ss hace que se incluyan las dependencias instaladas "
+"de forma explícita)\n"
+
+#, c-format
+msgid " -u, --unneeded remove unneeded packages\n"
+msgstr " -u, --unneeded elimina los paquetes que no son necesarios\n"
+
+#, c-format
+msgid " -c, --changelog view the changelog of a package\n"
+msgstr " -c, --changelog muestra el registro de cambios de un paquete\n"
+
+#, c-format
+msgid ""
+" -d, --deps list packages installed as dependencies [filter]\n"
+msgstr ""
+" -d, --deps lista todos los paquetes instalados como dependencias "
+"[filtro]\n"
+
+#, c-format
+msgid " -e, --explicit list packages explicitly installed [filter]\n"
+msgstr ""
+" -e, --explicit lista todos los paquetes instalados explícitamente "
+"[filtro]\n"
+
+#, c-format
+msgid " -g, --groups view all members of a package group\n"
+msgstr ""
+" -g, --groups muestra todos los elementos del grupo de paquetes \n"
+
+#, c-format
+msgid ""
+" -i, --info view package information (-ii for backup files)\n"
+msgstr ""
+" -i, --info ver la información del paquete (-ii para archivos de "
+"respaldo)\n"
+
+#, c-format
+msgid ""
+" -k, --check check that the files owned by the package(s) are "
+"present\n"
+msgstr ""
+" -k, --check verifica que los archivos pertenecientes al paquete "
+"están en el sistema\n"
+
+#, c-format
+msgid " -l, --list list the contents of the queried package\n"
+msgstr ""
+" -l, --list lista los archivos contenidos en el paquete "
+"consultado\n"
+
+#, c-format
+msgid ""
+" -m, --foreign list installed packages not found in sync db(s) "
+"[filter]\n"
+msgstr ""
+" -m, --foreign lista paquetes instalados que no se encuentran en la"
+"(s) base(s) de datos de sincronización [filtro]\n"
+
+#, c-format
+msgid " -o, --owns <file> query the package that owns <file>\n"
+msgstr ""
+" -o, --owns <arch> consulta el paquete que contiene el archivo indicado "
+"<arch>\n"
+
+#, c-format
+msgid " -p, --file <package> query a package file instead of the database\n"
+msgstr ""
+" -p, --file <paquete> consulta un archivo de paquetes en lugar de la base "
+"de datos\n"
+
+#, c-format
+msgid " -q, --quiet show less information for query and search\n"
+msgstr ""
+" -q, --quiet muestra menos información para la consulta y "
+"búsqueda\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search locally-installed packages for matching "
+"strings\n"
+msgstr ""
+" -s, --search <regex> busca los paquetes instalados que coincidan con la "
+"cadena especificada\n"
+
+#, c-format
+msgid ""
+" -t, --unrequired list packages not required by any package [filter]\n"
+msgstr ""
+" -t, --unrequired lista todos los paquetes que no requiere algún otro "
+"paquete [filtro]\n"
+
+#, c-format
+msgid " -u, --upgrades list outdated packages [filter]\n"
+msgstr ""
+" -u, --upgrades muestra todos los paquetes que pueden ser "
+"actualizados [filtro]\n"
+
+#, c-format
+msgid ""
+" -c, --clean remove old packages from cache directory (-cc for "
+"all)\n"
+msgstr ""
+" -c, --clean elimina paquetes antiguos del directorio de la cache "
+"(-cc para todos los paquetes)\n"
+
+#, c-format
+msgid " -i, --info view package information\n"
+msgstr " -i, --info visualiza la información del paquete\n"
+
+#, c-format
+msgid " -l, --list <repo> view a list of packages in a repo\n"
+msgstr ""
+" -l, --list <repo> visualiza una lista de paquetes en un repositorio\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search remote repositories for matching strings\n"
+msgstr ""
+" -s, --search <busq.> busca coincidencias de la cadena especificada en los "
+"repositorios remotos.\n"
+
+#, c-format
+msgid ""
+" -u, --sysupgrade upgrade installed packages (-uu allows downgrade)\n"
+msgstr ""
+" -u, --sysupgrade actualiza los paquetes instalados (-uu permite "
+"desactualizarlos)\n"
+
+#, c-format
+msgid ""
+" -w, --downloadonly download packages but do not install/upgrade "
+"anything\n"
+msgstr ""
+" -w, --downloadonly sólo descarga los paquetes, sin instalar/actualizar "
+"nada\n"
+
+#, c-format
+msgid ""
+" -y, --refresh download fresh package databases from the server\n"
+msgstr ""
+" -y, --refresh descarga las bases de datos de paquetes actualizadas "
+"desde el servidor\n"
+
+#, c-format
+msgid " --needed don't reinstall up to date packages\n"
+msgstr " --needed no reinstala paquetes que están actualizados\n"
+
+#, c-format
+msgid " --asdeps mark packages as non-explicitly installed\n"
+msgstr ""
+" --asdeps marca los paquetes como instalados de forma no "
+"explícita\n"
+
+#, c-format
+msgid " --asexplicit mark packages as explicitly installed\n"
+msgstr ""
+" --asexplicit marca los paquetes como instalados de forma "
+"explícita\n"
+
+#, c-format
+msgid " -f, --force force install, overwrite conflicting files\n"
+msgstr ""
+" -f, --force fuerza la instalación, sobreescribiendo los archivos "
+"en conflicto\n"
+
+#, c-format
+msgid " --asdeps install packages as non-explicitly installed\n"
+msgstr ""
+" --asdeps instala paquetes como dependencia (no-"
+"explícitamente)\n"
+
+#, c-format
+msgid " --asexplicit install packages as explicitly installed\n"
+msgstr ""
+" --asexplicit instala paquetes como instalados explícitamente \n"
+
+#, c-format
+msgid ""
+" --ignore <pkg> ignore a package upgrade (can be used more than "
+"once)\n"
+msgstr ""
+" --ignore <paq> ignora una actualización de un paquete (puede ser "
+"usado más de una vez)\n"
+
+#, c-format
+msgid ""
+" --ignoregroup <grp>\n"
+" ignore a group upgrade (can be used more than once)\n"
+msgstr ""
+" --ignoregroup <grp>\n"
+" ignora una actualización de un grupo de paquetes "
+"(puede ser usado más de una vez)\n"
+
+#, c-format
+msgid ""
+" -d, --nodeps skip dependency version checks (-dd to skip all "
+"checks)\n"
+msgstr ""
+" -d, --nodeps se salta la(s) comprobación(es) de versión de las "
+"dependencias (-dd para saltarlas todas)\n"
+
+#, c-format
+msgid ""
+" -k, --dbonly only modify database entries, not package files\n"
+msgstr ""
+" -k, --dbonly solo modificar entradas de la base de datos, no "
+"archivos del paquete\n"
+"\n"
+
+#, c-format
+msgid ""
+" --noprogressbar do not show a progress bar when downloading files\n"
+msgstr ""
+" --noprogressbar no muestra la barra de progreso cuando se descargan "
+"archivos\n"
+
+#, c-format
+msgid ""
+" --noscriptlet do not execute the install scriptlet if one exists\n"
+msgstr ""
+" --noscriptlet no ejecuta el script de instalación si existe alguno\n"
+
+#, c-format
+msgid ""
+" --print print the targets instead of performing the "
+"operation\n"
+msgstr ""
+" --print simula el proceso en lugar de llevar a cabo la "
+"operación\n"
+
+#, c-format
+msgid ""
+" --print-format <string>\n"
+" specify how the targets should be printed\n"
+msgstr ""
+" --print-format <formato>\n"
+" define cómo será mostrado el objetivo\n"
+
+#, c-format
+msgid " -b, --dbpath <path> set an alternate database location\n"
+msgstr ""
+" -b, --dbpath <ruta> define una ruta para una base de datos alternativa\n"
+
+#, c-format
+msgid " -r, --root <path> set an alternate installation root\n"
+msgstr ""
+" -r, --root <ruta> define una ruta para una raíz de instalación "
+"alternativa\n"
+
+#, c-format
+msgid " -v, --verbose be verbose\n"
+msgstr " -v, --verbose mostrar todo\n"
+
+#, c-format
+msgid " --arch <arch> set an alternate architecture\n"
+msgstr " --arch <arq.> define una arquitectura alternativa\n"
+
+#, c-format
+msgid " --cachedir <dir> set an alternate package cache location\n"
+msgstr ""
+" --cachedir <dir> define una ruta para un directorio caché de paquetes "
+"alternativo\n"
+
+#, c-format
+msgid " --config <path> set an alternate configuration file\n"
+msgstr ""
+" --config <ruta> define un archivo de configuración alternativo\n"
+
+#, c-format
+msgid " --debug display debug messages\n"
+msgstr " --debug muestra mensajes de depuración\n"
+
+#, fuzzy, c-format
+msgid " --gpgdir <path> set an alternate home directory for GnuPG\n"
+msgstr " --logfile <ruta> define un archivo de registro alternativo\n"
+
+#, c-format
+msgid " --logfile <path> set an alternate log file\n"
+msgstr " --logfile <ruta> define un archivo de registro alternativo\n"
+
+#, c-format
+msgid " --noconfirm do not ask for any confirmation\n"
+msgstr " --noconfirm no solicita confirmación alguna\n"
+
+#, c-format
+msgid ""
+" This program may be freely redistributed under\n"
+" the terms of the GNU General Public License.\n"
+msgstr ""
+" Este programa puede distribuirse libremente bajo\n"
+" los términos de la licencia GNU General Public "
+"License\n"
+
+#, c-format
+msgid "'%s' is not a valid debug level\n"
+msgstr "'%s' no es un nivel de depuración válido\n"
+
+#, c-format
+msgid "only one operation may be used at a time\n"
+msgstr "sólo una operación puede utilizarse a la vez\n"
+
+#, c-format
+msgid "invalid option\n"
+msgstr "opción no válida\n"
+
+#, c-format
+msgid "buffer overflow detected in arg parsing\n"
+msgstr "volcado de pila detectado en procesamiento de argumento\n"
+
+#, c-format
+msgid "failed to reopen stdin for reading: (%s)\n"
+msgstr "falló al abrir stdin para lectura: (%s)\n"
+
+#, c-format
+msgid "you cannot perform this operation unless you are root.\n"
+msgstr "no puede realizar esta operación, a menos que sea root.\n"
+
+#, c-format
+msgid "no operation specified (use -h for help)\n"
+msgstr "no se especificó una operación (utilice -h para ayuda)\n"
+
+#, c-format
+msgid "%s is owned by %s %s\n"
+msgstr "%s es propiedad de %s %s\n"
+
+#, c-format
+msgid "no file was specified for --owns\n"
+msgstr "no se indicó un archivo para --owns\n"
+
+#, c-format
+msgid "failed to find '%s' in PATH: %s\n"
+msgstr "no se pudo encontrar '%s' en PATH: %s\n"
+
+#, c-format
+msgid "failed to read file '%s': %s\n"
+msgstr "no se pudo leer el archivo '%s': %s\n"
+
+#, c-format
+msgid "cannot determine ownership of directory '%s'\n"
+msgstr "no puedo determinar el dueño del directorio '%s'\n"
+
+#, c-format
+msgid "cannot determine real path for '%s': %s\n"
+msgstr "no se pudo determinar la ruta real de '%s': %s\n"
+
+#, c-format
+msgid "path too long: %s%s\n"
+msgstr "ruta muy larga: %s%s\n"
+
+#, c-format
+msgid "No package owns %s\n"
+msgstr "Ningún paquete posee %s\n"
+
+#, c-format
+msgid "group \"%s\" was not found\n"
+msgstr "el grupo \"%s\" no fue encontrado\n"
+
+#, c-format
+msgid "%s: %d total file, "
+msgid_plural "%s: %d total files, "
+msgstr[0] "%s: %d archivo total, "
+msgstr[1] "%s: %d archivos totales,"
+
+#, c-format
+msgid "%d missing file\n"
+msgid_plural "%d missing files\n"
+msgstr[0] "%d archivo no encontrado\n"
+msgstr[1] "%d archivos no encontrados\n"
+
+#, c-format
+msgid "no usable package repositories configured.\n"
+msgstr "no hay ningún repositorio de paquetes configurado.\n"
+
+#, c-format
+msgid "package \"%s\" not found\n"
+msgstr "el paquete \"%s\" no fue encontrado \n"
+
+#, c-format
+msgid "failed to prepare transaction (%s)\n"
+msgstr "error al preparar la transacción (%s)\n"
+
+#, c-format
+msgid ":: package %s does not have a valid architecture\n"
+msgstr "::el paquete '%s' no posee una arquitectura válida\n"
+
+#, c-format
+msgid ":: %s: requires %s\n"
+msgstr ":: %s: necesita %s\n"
+
+#, c-format
+msgid "%s is designated as a HoldPkg.\n"
+msgstr "%s está indicado en HoldPkg.\n"
+
+#, c-format
+msgid "HoldPkg was found in target list. Do you want to continue?"
+msgstr "HoldPkg fue encontrado en la lista de objetivos. ¿Desea continuar?"
+
+#, c-format
+msgid " there is nothing to do\n"
+msgstr " nada que hacer\n"
+
+#, c-format
+msgid "Do you want to remove these packages?"
+msgstr "¿Quiere eliminar estos paquetes?"
+
+#, c-format
+msgid "failed to commit transaction (%s)\n"
+msgstr "error al realizar la transacción (%s)\n"
+
+#, c-format
+msgid "could not access database directory\n"
+msgstr "no se pudo acceder al directorio de la base de datos\n"
+
+#, c-format
+msgid "could not remove %s\n"
+msgstr "no se puede eliminar %s\n"
+
+#, c-format
+msgid "Do you want to remove %s?"
+msgstr "¿Quiere eliminar %s?"
+
+#, c-format
+msgid "Database directory: %s\n"
+msgstr "Directorio de la base de datos: %s\n"
+
+#, c-format
+msgid "Do you want to remove unused repositories?"
+msgstr "¿Quiere eliminar estos repositorios no utilizados?"
+
+#, c-format
+msgid "Database directory cleaned up\n"
+msgstr "Directorio de la base de datos vaciado\n"
+
+#, c-format
+msgid "Cache directory: %s\n"
+msgstr "Directorio de caché: %s\n"
+
+#, c-format
+msgid "Packages to keep:\n"
+msgstr "Paquetes a mantener:\n"
+
+#, c-format
+msgid " All locally installed packages\n"
+msgstr " Todos los paquetes instalados localmente\n"
+
+#, c-format
+msgid " All current sync database packages\n"
+msgstr " Las bases de datos de los paquetes están sincronizadas\n"
+
+#, c-format
+msgid "Do you want to remove all other packages from cache?"
+msgstr "¿Quieres remover todos los otros paquetes de la caché?"
+
+#, c-format
+msgid "removing old packages from cache...\n"
+msgstr "quitando paquetes antiguos de la caché...\n"
+
+#, c-format
+msgid "Do you want to remove ALL files from cache?"
+msgstr "¿Desea quitar TODOS los paquetes de la caché?"
+
+#, c-format
+msgid "removing all files from cache...\n"
+msgstr "quitando todos los paquetes de la caché...\n"
+
+#, c-format
+msgid "could not access cache directory %s\n"
+msgstr "no se pudo acceder al directorio de la caché %s\n"
+
+#, c-format
+msgid "File %s does not seem to be a valid package, remove it?"
+msgstr "El archivo %s no parece un paquete válido, ¿desea quitarlo?"
+
+#, c-format
+msgid "failed to update %s (%s)\n"
+msgstr "error al actualizar %s (%s)\n"
+
+#, c-format
+msgid " %s is up to date\n"
+msgstr " %s está actualizado\n"
+
+#, c-format
+msgid "failed to synchronize any databases\n"
+msgstr "no se pudo sincronizar ninguna base de datos\n"
+
+#, c-format
+msgid "installed"
+msgstr "instalado"
+
+#, c-format
+msgid "repository '%s' does not exist\n"
+msgstr "el repositorio '%s' no existe\n"
+
+#, c-format
+msgid "package '%s' was not found in repository '%s'\n"
+msgstr "el paquete '%s' no fue encontrado en el repositorio '%s'\n"
+
+#, c-format
+msgid "package '%s' was not found\n"
+msgstr "el paquete '%s' no fue encontrado\n"
+
+#, c-format
+msgid "repository \"%s\" was not found.\n"
+msgstr "el repositorio \"%s\" no fue encontrado.\n"
+
+#, c-format
+msgid "skipping target: %s\n"
+msgstr "saltando el objetivo: %s\n"
+
+#, c-format
+msgid "target not found: %s\n"
+msgstr "destino no encontrado: %s\n"
+
+#, c-format
+msgid ":: There are %d members in group %s:\n"
+msgstr ":: Hay %d miembros en el grupo %s:\n"
+
+#, c-format
+msgid "database not found: %s\n"
+msgstr "base de datos no encontrada: %s\n"
+
+#, c-format
+msgid ":: Starting full system upgrade...\n"
+msgstr ":: Iniciando actualización completa del sistema...\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict\n"
+msgstr ":: %s y %s están en conflicto\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s)\n"
+msgstr ":: %s y %s están en conflicto (%s)\n"
+
+#, c-format
+msgid "Proceed with download?"
+msgstr "¿Continuar con la descarga?"
+
+#, c-format
+msgid "Proceed with installation?"
+msgstr "¿Continuar con la instalación?"
+
+#, c-format
+msgid "%s exists in both '%s' and '%s'\n"
+msgstr "%s existe tanto en '%s' como en '%s'\n"
+
+#, c-format
+msgid "%s: %s exists in filesystem\n"
+msgstr "%s: %s existe en el sistema de archivos\n"
+
+#, c-format
+msgid "%s is invalid or corrupted\n"
+msgstr "%s no es válido o está dañado\n"
+
+#, c-format
+msgid "Errors occurred, no packages were upgraded.\n"
+msgstr "Ocurrieron errores, no se actualizaron paquetes\n"
+
+#, c-format
+msgid ":: Synchronizing package databases...\n"
+msgstr ":: Sincronizando las bases de datos de paquetes...\n"
+
+#, c-format
+msgid ":: The following packages should be upgraded first :\n"
+msgstr ":: Los siguientes paquetes deben actualizarse primero:\n"
+
+#, c-format
+msgid ""
+":: Do you want to cancel the current operation\n"
+":: and upgrade these packages now?"
+msgstr ""
+":: ¿Desea cancelar la operación actual\n"
+":: y actualizar estos paquetes ahora?"
+
+#, c-format
+msgid "failed to init transaction (%s)\n"
+msgstr "error al iniciar la transacción (%s)\n"
+
+#, c-format
+msgid ""
+" if you're sure a package manager is not already\n"
+" running, you can remove %s\n"
+msgstr ""
+" si está seguro que no se está ejecutando un\n"
+" administrador de paquetes, puede eliminar %s.\n"
+
+#, c-format
+msgid " try running pacman-db-upgrade\n"
+msgstr " intente ejecutar pacman-db-upgrade\n"
+
+#, c-format
+msgid "failed to release transaction (%s)\n"
+msgstr "error al liberar la transacción (%s)\n"
+
+#, c-format
+msgid "None"
+msgstr "Nada"
+
+#, c-format
+msgid "insufficient columns available for table display\n"
+msgstr ""
+
+#, c-format
+msgid "Name"
+msgstr ""
+
+#, c-format
+msgid "Old Version"
+msgstr ""
+
+#, c-format
+msgid "New Version"
+msgstr ""
+
+#, c-format
+msgid "Size"
+msgstr ""
+
+#, c-format
+msgid "Targets (%d):"
+msgstr "Objetivos (%d):"
+
+#, c-format
+msgid "Remove (%d):"
+msgstr "Se quitará (%d):"
+
+#, fuzzy, c-format
+msgid "Total Download Size: %.2f %s\n"
+msgstr "Tamaño total de descarga: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Installed Size: %.2f %s\n"
+msgstr "Tamaño total instalado: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Net Upgrade Size: %.2f %s\n"
+msgstr "Tamaño total de descarga: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Removed Size: %.2f %s\n"
+msgstr "Tamaño total eliminado: %.2f MB\n"
+
+#, c-format
+msgid "New optional dependencies for %s\n"
+msgstr "Nuevas dependencias opcionales para %s\n"
+
+#, c-format
+msgid "Optional dependencies for %s\n"
+msgstr "Dependencias opcionales para %s\n"
+
+#, c-format
+msgid "Repository %s\n"
+msgstr "Repositorio %s\n"
+
+#, c-format
+msgid "Invalid value: %d is not between %d and %d\n"
+msgstr "Valor no válido: %d no se está entre %d y %d\n"
+
+#, c-format
+msgid "Invalid number: %s\n"
+msgstr "Número no válido: %s\n"
+
+#, c-format
+msgid "Enter a selection (default=all)"
+msgstr "Introduzca una selección (por defecto=todos)"
+
+#, c-format
+msgid "Enter a number (default=%d)"
+msgstr "Introduzca un número (por defecto=%d)"
+
+#, c-format
+msgid "[Y/n]"
+msgstr "[S/n]"
+
+#, c-format
+msgid "[y/N]"
+msgstr "[s/N]"
+
+#, c-format
+msgid "Y"
+msgstr "S"
+
+#, c-format
+msgid "YES"
+msgstr "SI"
+
+#, c-format
+msgid "N"
+msgstr "N"
+
+#, c-format
+msgid "NO"
+msgstr "NO"
+
+#, c-format
+msgid "failed to allocate string\n"
+msgstr "Error al asignar espacio a la cadena\n"
+
+#, c-format
+msgid "error: %s"
+msgstr "error: %s"
+
+#, c-format
+msgid "warning: %s"
+msgstr "precaución: %s"
+
+#, c-format
+msgid "error: "
+msgstr "error: "
+
+#, c-format
+msgid "warning: "
+msgstr "precaución: "
+
diff --git a/src/pacman/po/fi.po b/src/pacman/po/fi.po
new file mode 100644
index 00000000..d4da37c0
--- /dev/null
+++ b/src/pacman/po/fi.po
@@ -0,0 +1,1123 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Pacman Development Team <pacman-dev@archlinux.org>
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Arch Linux Pacman package manager\n"
+"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
+"POT-Creation-Date: 2011-06-23 21:59-0500\n"
+"PO-Revision-Date: 2011-05-11 14:51+0000\n"
+"Last-Translator: Larso <larso@gmx.com>\n"
+"Language-Team: Finnish (http://www.transifex.net/projects/p/archlinux-pacman/"
+"team/fi/)\n"
+"Language: fi\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"
+
+#, c-format
+msgid "checking dependencies...\n"
+msgstr "tarkistetaan riippuvuuksia...\n"
+
+#, c-format
+msgid "checking for file conflicts...\n"
+msgstr "tarkistetaan tiedostojen ristiriitaisuutta...\n"
+
+#, c-format
+msgid "resolving dependencies...\n"
+msgstr "selvitetään riippuvuuksia...\n"
+
+#, c-format
+msgid "looking for inter-conflicts...\n"
+msgstr "tarkastetaan ristiriitojen syntymistä...\n"
+
+#, c-format
+msgid "installing %s...\n"
+msgstr "asennetaan pakettia %s...\n"
+
+#, c-format
+msgid "removing %s...\n"
+msgstr "poistetaan pakettia %s...\n"
+
+#, c-format
+msgid "upgrading %s...\n"
+msgstr "päivitetään pakettia %s...\n"
+
+#, c-format
+msgid "checking package integrity...\n"
+msgstr "tarkistetaan pakettien virheettömyyttä...\n"
+
+#, c-format
+msgid "checking delta integrity...\n"
+msgstr "tarkistetaan deltojen virheettömyyttä...\n"
+
+#, c-format
+msgid "applying deltas...\n"
+msgstr "asennetaan deltoja...\n"
+
+#, c-format
+msgid "generating %s with %s... "
+msgstr "luodaan %s käyttämällä %s:aa/ää"
+
+#, c-format
+msgid "success!\n"
+msgstr "onnistui!\n"
+
+#, c-format
+msgid "failed.\n"
+msgstr "epäonnistui.\n"
+
+#, c-format
+msgid ":: Retrieving packages from %s...\n"
+msgstr ":: Noudetaan paketteja varastosta %s...\n"
+
+#, c-format
+msgid "checking available disk space...\n"
+msgstr "tarkastetaan saatavilla olevaa levytilaa...\n"
+
+#, c-format
+msgid ":: %s is in IgnorePkg/IgnoreGroup. Install anyway?"
+msgstr ""
+":: Paketti %s on IgnorePkg/IgnoreGroup -listalla. Asenna siitä huolimatta?"
+
+#, c-format
+msgid ":: Replace %s with %s/%s?"
+msgstr ":: Korvaa paketti %s paketilla %s/%s?"
+
+#, c-format
+msgid ":: %s and %s are in conflict. Remove %s?"
+msgstr ""
+":: Paketit %s ja %s ovat ristiriidassa keskenään. Poistetaanko paketti %s?"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s). Remove %s?"
+msgstr ""
+":: Paketit %s ja %s ovat ristiriidassa keskenään (%s). Poistetaanko paketti "
+"%s?"
+
+#, c-format
+msgid ""
+":: The following package cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgid_plural ""
+":: The following packages cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgstr[0] ""
+":: Seuraavaa pakettia ei voida päivittää selvittämättömien riippuvuuksien "
+"vuoksi:\n"
+msgstr[1] ""
+":: Seuraavia paketteja ei voida päivittää selvittämättömien riippuvuuksien "
+"vuoksi:\n"
+
+#, c-format
+msgid "Do you want to skip the above package for this upgrade?"
+msgid_plural "Do you want to skip the above packages for this upgrade?"
+msgstr[0] "Tahdotko ohittaa yllä olevan paketin päivittämisen?"
+msgstr[1] "Tahdotko ohittaa yllä olevien pakettien päivittämisen?"
+
+#, c-format
+msgid ":: There are %d providers available for %s:\n"
+msgstr ":: %d tarjoajaa kohteelle %s:\n"
+
+#, c-format
+msgid ":: %s-%s: local version is newer. Upgrade anyway?"
+msgstr ":: Paikallinen paketti %s-%s on uudempi. Asenna siitä huolimatta?"
+
+#, c-format
+msgid ":: File %s is corrupted. Do you want to delete it?"
+msgstr ":: Tiedosto %s on vahingoittunut. Tahdotko poistaa sen?"
+
+#, c-format
+msgid "installing"
+msgstr "asennetaan"
+
+#, c-format
+msgid "upgrading"
+msgstr "päivitetään"
+
+#, c-format
+msgid "removing"
+msgstr "poistetaan"
+
+#, c-format
+msgid "checking for file conflicts"
+msgstr "tarkistetaan tiedostoristiriitojen syntymistä"
+
+#, c-format
+msgid "checking available disk space"
+msgstr "tarkastetaan saatavilla olevaa levytilaa"
+
+#, c-format
+msgid "checking package integrity"
+msgstr "tarkastetaan pakettien virheettömyyttä"
+
+#, c-format
+msgid "downloading %s...\n"
+msgstr "ladataan pakettia %s...\n"
+
+#, c-format
+msgid "malloc failure: could not allocate %zd bytes\n"
+msgstr "malloc-virhe: %zd tavua ei voitu varata\n"
+
+#, c-format
+msgid "could not get current working directory\n"
+msgstr "nykyisen kansion sijaintia ei kyetty määrittämään\n"
+
+#, c-format
+msgid "could not chdir to download directory %s\n"
+msgstr "latauskansioon '%s' ei voitu siirtyä\n"
+
+#, c-format
+msgid "running XferCommand: fork failed!\n"
+msgstr "XferCommand: haarauttaminen epäonnistui!\n"
+
+#, c-format
+msgid "could not change directory to %s (%s)\n"
+msgstr "ei voitu siirtyä kansioon %s (%s)\n"
+
+#, c-format
+msgid "invalid value for 'CleanMethod' : '%s'\n"
+msgstr "epäkelvollinen arvo avaimelle 'CleanMethod': '%s'\n"
+
+#, c-format
+msgid ""
+"config file %s, line %d: directive '%s' in section '%s' not recognized.\n"
+msgstr ""
+"asetustiedosto %s rivillä %d: direktiiviä '%s' osiossa '%s' ei tunnistettu.\n"
+
+#, fuzzy, c-format
+msgid "config file %s, line %d: directive '%s' has invalid value '%s'\n"
+msgstr "asetustiedosto %s rivillä %d: direktiivi '%s' tarvitsee arvon\n"
+
+#, c-format
+msgid ""
+"The mirror '%s' contains the $arch variable, but no Architecture is "
+"defined.\n"
+msgstr "Peilipalvelin '%s' sisältää $arch-muuttujan, jota ei ole määritetty.\n"
+
+#, c-format
+msgid "could not add server URL to database '%s': %s (%s)\n"
+msgstr "palvelimen osoitetta ei voitu lisätä tietokantaan '%s': %s(%s)\n"
+
+#, c-format
+msgid "failed to initialize alpm library (%s)\n"
+msgstr "alpm-kirjaston alustaminen epäonnistui (%s)\n"
+
+#, c-format
+msgid "problem setting logfile '%s' (%s)\n"
+msgstr "ongelma asetettaessa lokitiedostoa '%s' (%s)\n"
+
+#, fuzzy, c-format
+msgid "problem setting gpgdir '%s' (%s)\n"
+msgstr "ongelma asetettaessa juurikansiota '%s' (%s)\n"
+
+#, c-format
+msgid "could not register '%s' database (%s)\n"
+msgstr "tietokannan '%s' rekisteroiminen epäonnistui (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not set verify option for database '%s' (%s)\n"
+msgstr "palvelimen osoitetta ei voitu lisätä tietokantaan '%s': %s(%s)\n"
+
+#, fuzzy, c-format
+msgid "could not add mirror '%s' to database '%s' (%s)\n"
+msgstr "palvelimen osoitetta ei voitu lisätä tietokantaan '%s': %s(%s)\n"
+
+#, c-format
+msgid "config parsing exceeded max recursion depth of %d.\n"
+msgstr ""
+
+#, c-format
+msgid "config file %s could not be read.\n"
+msgstr "asetustiedostoa %s ei voitu lukea.\n"
+
+#, c-format
+msgid "config file %s, line %d: bad section name.\n"
+msgstr "asetustiedosto %s, sisältää viallisen osionimen rivillä: %d.\n"
+
+#, c-format
+msgid "config file %s, line %d: syntax error in config file- missing key.\n"
+msgstr "asetustiedosto %s, rivi %d: syntaksivirhe, avain puuttuu.\n"
+
+#, c-format
+msgid "config file %s, line %d: All directives must belong to a section.\n"
+msgstr ""
+"asetustiedosto %s, rivi %d: Kaikkien asetusvalintojen tulee kuulua johonkin "
+"osioon.\n"
+
+#, c-format
+msgid "config file %s, line %d: directive '%s' needs a value\n"
+msgstr "asetustiedosto %s rivillä %d: direktiivi '%s' tarvitsee arvon\n"
+
+#, c-format
+msgid "no targets specified (use -h for help)\n"
+msgstr "yhtään kohdetta ei ole määritelty (-h tulostaa ohjeen)\n"
+
+#, c-format
+msgid "no install reason specified (use -h for help)\n"
+msgstr "asennussyytä ei ole määritelty (-h näyttää ohjeen)\n"
+
+#, c-format
+msgid "could not set install reason for package %s (%s)\n"
+msgstr "paketin %s asennusyytä ei voitu asettaa (%s)\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'installed as dependency'\n"
+msgstr "%s: asennussyyksi on merkitty 'asennettu riippuvuutena'\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'explicitly installed'\n"
+msgstr "%s: asennussyyksi on merkitty 'itsenäisesti asennettu'\n"
+
+#, c-format
+msgid "Explicitly installed"
+msgstr "Asennettu itsenäisesti"
+
+#, c-format
+msgid "Installed as a dependency for another package"
+msgstr "Asennettu riippuvuutena toiselle paketille"
+
+#, c-format
+msgid "Unknown"
+msgstr "Tuntematon"
+
+#, c-format
+msgid "Repository :"
+msgstr "Pakettivarasto :"
+
+#, c-format
+msgid "Name :"
+msgstr "Nimi :"
+
+#, c-format
+msgid "Version :"
+msgstr "Versio :"
+
+#, c-format
+msgid "URL :"
+msgstr "Osoite :"
+
+#, c-format
+msgid "Licenses :"
+msgstr "Lisenssi :"
+
+#, c-format
+msgid "Groups :"
+msgstr "Ryhmät :"
+
+#, c-format
+msgid "Provides :"
+msgstr "Sisältää paketit :"
+
+#, c-format
+msgid "Depends On :"
+msgstr "Riippuu paketeista :"
+
+#, c-format
+msgid "Optional Deps :"
+msgstr "Valinnaiset riippuvuudet:"
+
+#, c-format
+msgid "Required By :"
+msgstr "Riippuvuutena paketeille:"
+
+#, c-format
+msgid "Conflicts With :"
+msgstr "Ristiriidassa paketeille:"
+
+#, c-format
+msgid "Replaces :"
+msgstr "Korvaa paketit :"
+
+#, fuzzy, c-format
+msgid "Download Size : %6.2f %s\n"
+msgstr "Latauksen koko : %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Compressed Size: %6.2f %s\n"
+msgstr "Pakattu koko : %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Installed Size : %6.2f %s\n"
+msgstr "Asennettu koko : %6.2f K\n"
+
+#, c-format
+msgid "Packager :"
+msgstr "Pakkaaja :"
+
+#, c-format
+msgid "Architecture :"
+msgstr "Arkkitehtuuri :"
+
+#, c-format
+msgid "Build Date :"
+msgstr "Luomispäivä :"
+
+#, c-format
+msgid "Install Date :"
+msgstr "Asennuspäivä :"
+
+#, c-format
+msgid "Install Reason :"
+msgstr "Asennuksen syy :"
+
+#, c-format
+msgid "Install Script :"
+msgstr "Asennusskripti :"
+
+#, c-format
+msgid "Yes"
+msgstr "Kyllä"
+
+#, c-format
+msgid "No"
+msgstr "Ei"
+
+#, c-format
+msgid "MD5 Sum :"
+msgstr "MD5-summa :"
+
+#, c-format
+msgid "Description :"
+msgstr "Kuvaus :"
+
+#, c-format
+msgid "could not calculate checksums for %s\n"
+msgstr "paketin %s tarkistussummaa ei voitu laskea\n"
+
+#, c-format
+msgid "Backup Files:\n"
+msgstr "Varmuuskopiot :\n"
+
+#, c-format
+msgid "(none)\n"
+msgstr "(Ei ole)\n"
+
+#, c-format
+msgid "no changelog available for '%s'.\n"
+msgstr "paketille '%s' ei ole muutoslokia.\n"
+
+#, c-format
+msgid "options"
+msgstr "valinnat"
+
+#, c-format
+msgid "file(s)"
+msgstr "tiedosto(t)"
+
+#, c-format
+msgid "package(s)"
+msgstr "paketti(tit)"
+
+#, c-format
+msgid "usage"
+msgstr "käyttö"
+
+#, c-format
+msgid "operation"
+msgstr "operaatio"
+
+#, c-format
+msgid "operations:\n"
+msgstr "operaatiot:\n"
+
+#, c-format
+msgid ""
+"\n"
+"use '%s {-h --help}' with an operation for available options\n"
+msgstr ""
+"\n"
+"suorita '%s {-h --help}' operaation kanssa käytettävissä olevien valitsimien "
+"listaamiseksi.\n"
+
+#, c-format
+msgid ""
+" -c, --cascade remove packages and all packages that depend on them\n"
+msgstr " -c, --cascade poista paketit ja kaikki niiden riippuvuudet\n"
+
+#, c-format
+msgid " -n, --nosave remove configuration files\n"
+msgstr " -n, --nosave poista myös asetustiedostot\n"
+
+#, c-format
+msgid ""
+" -s, --recursive remove unnecessary dependencies\n"
+" (-ss includes explicitly installed dependencies)\n"
+msgstr ""
+
+#, c-format
+msgid " -u, --unneeded remove unneeded packages\n"
+msgstr " -u, --unneeded poista tarpeettomat paketit\n"
+
+#, c-format
+msgid " -c, --changelog view the changelog of a package\n"
+msgstr " -c, --changelog näytä paketin muutosloki\n"
+
+#, c-format
+msgid ""
+" -d, --deps list packages installed as dependencies [filter]\n"
+msgstr ""
+" -d, --deps listaa riippuvuuksina asennetut paketit "
+"[suodatin]\n"
+
+#, c-format
+msgid " -e, --explicit list packages explicitly installed [filter]\n"
+msgstr ""
+" -e, --explicit listaa itsenäisesti asennetut paketit [suodatin]\n"
+
+#, c-format
+msgid " -g, --groups view all members of a package group\n"
+msgstr " -g, --groups listaa ryhmän paketit\n"
+
+#, c-format
+msgid ""
+" -i, --info view package information (-ii for backup files)\n"
+msgstr ""
+" -i, --info näytä paketin tiedot (-ii listaa varmuuskopiot)\n"
+
+#, c-format
+msgid ""
+" -k, --check check that the files owned by the package(s) are "
+"present\n"
+msgstr ""
+" -k, --check varmistaa, että kaikki paketin tiedostot ovat "
+"levyllä\n"
+
+#, c-format
+msgid " -l, --list list the contents of the queried package\n"
+msgstr " -l, --list listaa paketin tiedostot\n"
+
+#, c-format
+msgid ""
+" -m, --foreign list installed packages not found in sync db(s) "
+"[filter]\n"
+msgstr ""
+" -m, --foreign listaa paketit, jotka eivät ole millään "
+"pakettilistalla [suodatin]\n"
+
+#, c-format
+msgid " -o, --owns <file> query the package that owns <file>\n"
+msgstr ""
+" -o, --owns <tiedosto> etsi pakettia, joka omistaa kyseisen tiedoston\n"
+
+#, c-format
+msgid " -p, --file <package> query a package file instead of the database\n"
+msgstr " -p, --file <paketti> etsi paketista pakettitietokannan sijaan\n"
+
+#, c-format
+msgid " -q, --quiet show less information for query and search\n"
+msgstr " -q, --quiet näytä vähemmän tietoja\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search locally-installed packages for matching "
+"strings\n"
+msgstr " -s, --search <regex> etsi merkkijonoa asennetuista paketeista\n"
+
+#, c-format
+msgid ""
+" -t, --unrequired list packages not required by any package [filter]\n"
+msgstr ""
+" -t, --unrequired listaa paketit, jotka eivät ole riippuvuuksia "
+"[suodatin]\n"
+
+#, c-format
+msgid " -u, --upgrades list outdated packages [filter]\n"
+msgstr ""
+" -u, --upgrades listaa paketit, joille on saatavilla päivityksiä "
+"[suodatin]\n"
+
+#, c-format
+msgid ""
+" -c, --clean remove old packages from cache directory (-cc for "
+"all)\n"
+msgstr ""
+" -c, --clean poista vanhat paketit varastosta (-cc poistaa "
+"kaikki)\n"
+
+#, c-format
+msgid " -i, --info view package information\n"
+msgstr " -i, --info näytä paketin tiedot\n"
+
+#, c-format
+msgid " -l, --list <repo> view a list of packages in a repo\n"
+msgstr " -l, --list <varasto> listaa varaston sisältämät paketit\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search remote repositories for matching strings\n"
+msgstr " -s, --search <regex> etsi merkkijonoa pakettivarastoista\n"
+
+#, c-format
+msgid ""
+" -u, --sysupgrade upgrade installed packages (-uu allows downgrade)\n"
+msgstr ""
+" -u, --sysupgrade päivitä asennetut paketit (-uu sallii pakettien "
+"varhentamisen)\n"
+
+#, c-format
+msgid ""
+" -w, --downloadonly download packages but do not install/upgrade "
+"anything\n"
+msgstr " -w, --downloadonly lataa paketit mutta älä asenna/päivitä mitään\n"
+
+#, c-format
+msgid ""
+" -y, --refresh download fresh package databases from the server\n"
+msgstr " -y, --refresh lataa uusimmat pakettilistat palvelimelta\n"
+
+#, c-format
+msgid " --needed don't reinstall up to date packages\n"
+msgstr " --needed älä uudelleenasenna paketteja\n"
+
+#, c-format
+msgid " --asdeps mark packages as non-explicitly installed\n"
+msgstr ""
+" --asdeps merkitse paketit riippuvuuksina asennetuiksi\n"
+
+#, c-format
+msgid " --asexplicit mark packages as explicitly installed\n"
+msgstr " --asexplicit merkitse paketit itsenäisesti asennetuiksi\n"
+
+#, c-format
+msgid " -f, --force force install, overwrite conflicting files\n"
+msgstr ""
+" -f, --force pakota asennus, ylikirjoita tiedosto ristiriidat\n"
+
+#, c-format
+msgid " --asdeps install packages as non-explicitly installed\n"
+msgstr " --asdeps asenna paketit riippuvuuksina\n"
+
+#, c-format
+msgid " --asexplicit install packages as explicitly installed\n"
+msgstr " --asexplicit asenna paketit itsenäisinä\n"
+
+#, c-format
+msgid ""
+" --ignore <pkg> ignore a package upgrade (can be used more than "
+"once)\n"
+msgstr ""
+" --ignore <paketti> ohita paketin päivitys (voidaan käyttää useamman "
+"kerran)\n"
+
+#, c-format
+msgid ""
+" --ignoregroup <grp>\n"
+" ignore a group upgrade (can be used more than once)\n"
+msgstr ""
+" --ignoregroup <ryhmä>\n"
+" ohita ryhmän päivitys (voidaan käyttää useamman "
+"kerran)\n"
+
+#, c-format
+msgid ""
+" -d, --nodeps skip dependency version checks (-dd to skip all "
+"checks)\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -k, --dbonly only modify database entries, not package files\n"
+msgstr ""
+" -k, --dbonly muokkaa vain tietokantaa, älä paketin tiedostoja\n"
+
+#, c-format
+msgid ""
+" --noprogressbar do not show a progress bar when downloading files\n"
+msgstr ""
+" --noprogressbar älä näytä edistymispalkkia tiedostoja ladattaessa\n"
+
+#, c-format
+msgid ""
+" --noscriptlet do not execute the install scriptlet if one exists\n"
+msgstr ""
+" --noscriplet älä suorita asennusskriptiä, jos sellainen on "
+"olemassa\n"
+
+#, c-format
+msgid ""
+" --print print the targets instead of performing the "
+"operation\n"
+msgstr " --print listaa paketit, mutta älä suorita operaatiota\n"
+
+#, c-format
+msgid ""
+" --print-format <string>\n"
+" specify how the targets should be printed\n"
+msgstr ""
+" --print-format <rimpsu>\n"
+" missä muodossa paketit tulisi listata\n"
+
+#, c-format
+msgid " -b, --dbpath <path> set an alternate database location\n"
+msgstr ""
+" -b, --dbpath <polku> määritä vaihtoehtoinen sijainti tietokannalle\n"
+
+#, c-format
+msgid " -r, --root <path> set an alternate installation root\n"
+msgstr " -r, --root <polku> määritä vaihtoehtoinen juuri asennukselle\n"
+
+#, c-format
+msgid " -v, --verbose be verbose\n"
+msgstr " -v, --verbose näytä yksityiskohtaisempia tietoja\n"
+
+#, c-format
+msgid " --arch <arch> set an alternate architecture\n"
+msgstr " --arch <arch> määritä vaihtoehtoinen arkkitehtuuri\n"
+
+#, c-format
+msgid " --cachedir <dir> set an alternate package cache location\n"
+msgstr ""
+" --cachedir <kansio> määritä vaihtoehtoinen sijainti välimuistille\n"
+
+#, c-format
+msgid " --config <path> set an alternate configuration file\n"
+msgstr " --config <polku> määritä vaihtoehtoinen asetustiedosto\n"
+
+#, c-format
+msgid " --debug display debug messages\n"
+msgstr " --debug näytä ohjelmavirheiden viestit\n"
+
+#, fuzzy, c-format
+msgid " --gpgdir <path> set an alternate home directory for GnuPG\n"
+msgstr " --logfile <polku> määritä vaihtoehtoinen lokitiedosto\n"
+
+#, c-format
+msgid " --logfile <path> set an alternate log file\n"
+msgstr " --logfile <polku> määritä vaihtoehtoinen lokitiedosto\n"
+
+#, c-format
+msgid " --noconfirm do not ask for any confirmation\n"
+msgstr " --noconfirm älä pyydä vahvistusta\n"
+
+#, c-format
+msgid ""
+" This program may be freely redistributed under\n"
+" the terms of the GNU General Public License.\n"
+msgstr ""
+" Tätä ohjelmaa saa jakaa vapaasti GNU\n"
+" General Public Licensen ehtojen mukaisesti.\n"
+
+#, c-format
+msgid "'%s' is not a valid debug level\n"
+msgstr "'%s' ei ole kelvollinen debuggaustaso\n"
+
+#, c-format
+msgid "only one operation may be used at a time\n"
+msgstr "vain yksi operaatio voidaan suorittaa kerralla\n"
+
+#, c-format
+msgid "invalid option\n"
+msgstr "epäkelvollinen valitsin\n"
+
+#, c-format
+msgid "buffer overflow detected in arg parsing\n"
+msgstr "puskurin ylivuotovirhe valitsimia jäsennettäessä\n"
+
+#, c-format
+msgid "failed to reopen stdin for reading: (%s)\n"
+msgstr "stdin:in uudelleen avaaminen epäonnistui: (%s)\n"
+
+#, c-format
+msgid "you cannot perform this operation unless you are root.\n"
+msgstr "tämän operaation suorittamiseen vaaditaan ylläpitäjän oikeudet.\n"
+
+#, c-format
+msgid "no operation specified (use -h for help)\n"
+msgstr "mitään operaatiota ei määritelty (-h valitsin tulostaa ohjeen)\n"
+
+#, c-format
+msgid "%s is owned by %s %s\n"
+msgstr "tiedosto '%s' on paketin %s %s omistuksessa\n"
+
+#, c-format
+msgid "no file was specified for --owns\n"
+msgstr "valitsimelle --owns ei annettu tiedostoa\n"
+
+#, c-format
+msgid "failed to find '%s' in PATH: %s\n"
+msgstr "Ohjelmaa '%s' ei löydy PATH-sijainneista: %s\n"
+
+#, c-format
+msgid "failed to read file '%s': %s\n"
+msgstr "tiedoston '%s' luku epäonnistui: %s\n"
+
+#, c-format
+msgid "cannot determine ownership of directory '%s'\n"
+msgstr "kansion '%s' omistussuhteita ei voida määrittää\n"
+
+#, c-format
+msgid "cannot determine real path for '%s': %s\n"
+msgstr "kohteen '%s' todellisen sijainnin selvittäminen epäonnistui: %s\n"
+
+#, c-format
+msgid "path too long: %s%s\n"
+msgstr "polku on liian pitkä: %s%s\n"
+
+#, c-format
+msgid "No package owns %s\n"
+msgstr "Tiedosto %s ei ole minkään paketin omistuksessa\n"
+
+#, c-format
+msgid "group \"%s\" was not found\n"
+msgstr "ryhmää '%s' ei löydy\n"
+
+#, c-format
+msgid "%s: %d total file, "
+msgid_plural "%s: %d total files, "
+msgstr[0] "%s: yhteensä %d tiedosto, "
+msgstr[1] "%s: yhteensä %d tiedostoa, "
+
+#, c-format
+msgid "%d missing file\n"
+msgid_plural "%d missing files\n"
+msgstr[0] "%d puuttuva tiedosto\n"
+msgstr[1] "%d puuttuvaa tiedostoa\n"
+
+#, c-format
+msgid "no usable package repositories configured.\n"
+msgstr "yhtään kunnollista pakettivarastoa ei ole määritelty.\n"
+
+#, c-format
+msgid "package \"%s\" not found\n"
+msgstr "pakettia '%s' ei löydy\n"
+
+#, c-format
+msgid "failed to prepare transaction (%s)\n"
+msgstr "latauksen valmistelu epäonnistui (%s)\n"
+
+#, c-format
+msgid ":: package %s does not have a valid architecture\n"
+msgstr ":: paketilla %s ei ole kelvollista arkkitehtuuria\n"
+
+#, c-format
+msgid ":: %s: requires %s\n"
+msgstr ":: %s: riippuu paketeista %s\n"
+
+#, c-format
+msgid "%s is designated as a HoldPkg.\n"
+msgstr "paketti %s on HoldPkg-listalla.\n"
+
+#, c-format
+msgid "HoldPkg was found in target list. Do you want to continue?"
+msgstr "HoldPkg löytyi kohdelistasta. Tahdotko jatkaa?"
+
+#, c-format
+msgid " there is nothing to do\n"
+msgstr " ei mitään tehtävää\n"
+
+#, c-format
+msgid "Do you want to remove these packages?"
+msgstr "tahdotko poistaa nämä paketit?"
+
+#, c-format
+msgid "failed to commit transaction (%s)\n"
+msgstr "latauksen suorittaminen epäonnistui (%s)\n"
+
+#, c-format
+msgid "could not access database directory\n"
+msgstr "tietokantakansion avaaminen epäonnistui\n"
+
+#, c-format
+msgid "could not remove %s\n"
+msgstr "kohdetta %s ei voida poistaa\n"
+
+#, c-format
+msgid "Do you want to remove %s?"
+msgstr "tahdotko poistaa paketin %s?"
+
+#, c-format
+msgid "Database directory: %s\n"
+msgstr "Tietokantakansio: %s\n"
+
+#, c-format
+msgid "Do you want to remove unused repositories?"
+msgstr "Tahdotko poistaa käyttämättömät pakettivarastot?"
+
+#, c-format
+msgid "Database directory cleaned up\n"
+msgstr "Tietokantakansio on nyt siivottu\n"
+
+#, c-format
+msgid "Cache directory: %s\n"
+msgstr "Välimuistikansio: %s\n"
+
+#, c-format
+msgid "Packages to keep:\n"
+msgstr "Säilytettävät paketit:\n"
+
+#, c-format
+msgid " All locally installed packages\n"
+msgstr " Kaikki asennetut paketit\n"
+
+#, c-format
+msgid " All current sync database packages\n"
+msgstr " Kaikki pakettilistan paketit\n"
+
+#, c-format
+msgid "Do you want to remove all other packages from cache?"
+msgstr "Tahdotko poistaa kaikki muut paketit välimuistista?"
+
+#, c-format
+msgid "removing old packages from cache...\n"
+msgstr "poistetaan vanhoja paketteja välimuistista...\n"
+
+#, c-format
+msgid "Do you want to remove ALL files from cache?"
+msgstr "Tahdotko poistaa KAIKKI tiedostot välimuistista?"
+
+#, c-format
+msgid "removing all files from cache...\n"
+msgstr "poistetaan kaikkia tiedostoja välimuistista...\n"
+
+#, c-format
+msgid "could not access cache directory %s\n"
+msgstr "välimuistikansion %s avaaminen epäonnistui\n"
+
+#, c-format
+msgid "File %s does not seem to be a valid package, remove it?"
+msgstr "Tiedosto %s ei kuulu mihinkään pakettiin, poistetaanko se?"
+
+#, c-format
+msgid "failed to update %s (%s)\n"
+msgstr "Paketin %s päivittäminen epäonnistui (%s)\n"
+
+#, c-format
+msgid " %s is up to date\n"
+msgstr " %s on ajan tasalla\n"
+
+#, c-format
+msgid "failed to synchronize any databases\n"
+msgstr "minkään pakettitietokannan päivittäminen ei onistunut\n"
+
+#, c-format
+msgid "installed"
+msgstr "asennettu"
+
+#, c-format
+msgid "repository '%s' does not exist\n"
+msgstr "pakettivarastoa '%s' ei ole olemassa\n"
+
+#, c-format
+msgid "package '%s' was not found in repository '%s'\n"
+msgstr "pakettia '%s' ei löydy pakettivarastosta '%s'\n"
+
+#, c-format
+msgid "package '%s' was not found\n"
+msgstr "pakettia '%s' ei löydy\n"
+
+#, c-format
+msgid "repository \"%s\" was not found.\n"
+msgstr "pakettivarastoa '%s' ei löydy.\n"
+
+#, c-format
+msgid "skipping target: %s\n"
+msgstr "ohitetaan kohde: %s\n"
+
+#, c-format
+msgid "target not found: %s\n"
+msgstr "ei löydetä kohdetta: %s\n"
+
+#, c-format
+msgid ":: There are %d members in group %s:\n"
+msgstr ":: %d jäsentä ryhmässä %s:\n"
+
+#, c-format
+msgid "database not found: %s\n"
+msgstr "tietokantaa ei löydy: %s\n"
+
+#, c-format
+msgid ":: Starting full system upgrade...\n"
+msgstr ":: Aloitetaan järjestelmäpäivitys...\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict\n"
+msgstr ":: %s ja %s ovat ristiriidassa keskenään\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s)\n"
+msgstr ":: %s ja %s ovat ristiriidassa keskenään (%s)\n"
+
+#, c-format
+msgid "Proceed with download?"
+msgstr "Jatka lataamiseen?"
+
+#, c-format
+msgid "Proceed with installation?"
+msgstr "Jatketaanko asentamista?"
+
+#, c-format
+msgid "%s exists in both '%s' and '%s'\n"
+msgstr "tiedosto %s löytyy sekä paketista '%s' että '%s'\n"
+
+#, c-format
+msgid "%s: %s exists in filesystem\n"
+msgstr "%s: tiedosto %s on jo asennettuna tiedostojärjestelmään\n"
+
+#, c-format
+msgid "%s is invalid or corrupted\n"
+msgstr "paketti %s ei ole kelvollinen tai se on vahingoittunut\n"
+
+#, c-format
+msgid "Errors occurred, no packages were upgraded.\n"
+msgstr "Yhtään pakettia ei päivitetty tapahtuneiden virheiden vuoksi.\n"
+
+#, c-format
+msgid ":: Synchronizing package databases...\n"
+msgstr ":: Päivitetään pakettitietokantaa..\n"
+
+#, c-format
+msgid ":: The following packages should be upgraded first :\n"
+msgstr ":: Seuraavat paketit tulisi päivittää ennen muita:\n"
+
+#, c-format
+msgid ""
+":: Do you want to cancel the current operation\n"
+":: and upgrade these packages now?"
+msgstr ""
+":: Tahdotko peruuttaa nykyisen operaation\n"
+":: ja päivittää nämä paketit nyt?"
+
+#, c-format
+msgid "failed to init transaction (%s)\n"
+msgstr "latauksen alustaminen epäonnistui (%s)\n"
+
+#, c-format
+msgid ""
+" if you're sure a package manager is not already\n"
+" running, you can remove %s\n"
+msgstr ""
+" jos olet varma, että pakettienhallinta ei ole\n"
+" käynnissä, niin voit poistaa tiedoston %s\n"
+
+#, c-format
+msgid " try running pacman-db-upgrade\n"
+msgstr " yritä pacman-db-upgrade scriptin suorittamista\n"
+
+#, c-format
+msgid "failed to release transaction (%s)\n"
+msgstr "latauksen vapauttaminen epäonnistui (%s)\n"
+
+#, c-format
+msgid "None"
+msgstr "Ei ole"
+
+#, c-format
+msgid "insufficient columns available for table display\n"
+msgstr ""
+
+#, c-format
+msgid "Name"
+msgstr ""
+
+#, c-format
+msgid "Old Version"
+msgstr ""
+
+#, c-format
+msgid "New Version"
+msgstr ""
+
+#, c-format
+msgid "Size"
+msgstr ""
+
+#, c-format
+msgid "Targets (%d):"
+msgstr "kohteet (%d):"
+
+#, c-format
+msgid "Remove (%d):"
+msgstr "Poista (%d):"
+
+#, fuzzy, c-format
+msgid "Total Download Size: %.2f %s\n"
+msgstr "Yhteensä ladataan: %.2f Mt\n"
+
+#, fuzzy, c-format
+msgid "Total Installed Size: %.2f %s\n"
+msgstr "Yhteensä asennetaan: %.2f Mt\n"
+
+#, fuzzy, c-format
+msgid "Net Upgrade Size: %.2f %s\n"
+msgstr "Yhteensä ladataan: %.2f Mt\n"
+
+#, fuzzy, c-format
+msgid "Total Removed Size: %.2f %s\n"
+msgstr "Tilaa vapautuu yhteensä: %.2f Mt\n"
+
+#, c-format
+msgid "New optional dependencies for %s\n"
+msgstr "Paketilla %s on uusia valinnaisia riippuvuuksia\n"
+
+#, c-format
+msgid "Optional dependencies for %s\n"
+msgstr "Paketin %s valinnaiset riippuvuudet\n"
+
+#, c-format
+msgid "Repository %s\n"
+msgstr "Pakettivarasto %s\n"
+
+#, c-format
+msgid "Invalid value: %d is not between %d and %d\n"
+msgstr "Epäkelvollinen arvo: %d ei ole %d:n ja %d:n väliltä\n"
+
+#, c-format
+msgid "Invalid number: %s\n"
+msgstr "Epäkelvollinen luku: %s\n"
+
+#, c-format
+msgid "Enter a selection (default=all)"
+msgstr "Anna valinta (oletus=kaikki)"
+
+#, c-format
+msgid "Enter a number (default=%d)"
+msgstr "Anna luku (oletus=%d)"
+
+#, c-format
+msgid "[Y/n]"
+msgstr "[K/e]"
+
+#, c-format
+msgid "[y/N]"
+msgstr "[k/E]"
+
+#, c-format
+msgid "Y"
+msgstr "K"
+
+#, c-format
+msgid "YES"
+msgstr "KYLLÄ"
+
+#, c-format
+msgid "N"
+msgstr "E"
+
+#, c-format
+msgid "NO"
+msgstr "EI"
+
+#, c-format
+msgid "failed to allocate string\n"
+msgstr "merkkijonoa ei voitu varata\n"
+
+#, c-format
+msgid "error: %s"
+msgstr "virhe: %s"
+
+#, c-format
+msgid "warning: %s"
+msgstr "varoitus: %s"
+
+#, c-format
+msgid "error: "
+msgstr "virhe: "
+
+#, c-format
+msgid "warning: "
+msgstr "varoitus: "
+
diff --git a/src/pacman/po/fr.po b/src/pacman/po/fr.po
new file mode 100644
index 00000000..33f0b50b
--- /dev/null
+++ b/src/pacman/po/fr.po
@@ -0,0 +1,1163 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Pacman Development Team <pacman-dev@archlinux.org>
+# This file is distributed under the same license as the PACKAGE package.
+#
+# shining <chantry.xavier@gmail.com>, 2011
+# Dan McGee <dpmcgee@gmail.com>, 2011
+msgid ""
+msgstr ""
+"Project-Id-Version: Arch Linux Pacman package manager\n"
+"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
+"POT-Creation-Date: 2011-06-23 21:59-0500\n"
+"PO-Revision-Date: 2011-06-03 20:24+0000\n"
+"Last-Translator: remyoudompheng <remy@archlinux.org>\n"
+"Language-Team: French (http://www.transifex.net/projects/p/archlinux-pacman/"
+"team/fr/)\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1)\n"
+
+#, c-format
+msgid "checking dependencies...\n"
+msgstr "vérification des dépendances...\n"
+
+#, c-format
+msgid "checking for file conflicts...\n"
+msgstr "recherche des conflits entre fichiers...\n"
+
+#, c-format
+msgid "resolving dependencies...\n"
+msgstr "résolution des dépendances...\n"
+
+#, c-format
+msgid "looking for inter-conflicts...\n"
+msgstr "recherche des conflits entre paquets...\n"
+
+#, c-format
+msgid "installing %s...\n"
+msgstr "installation de %s...\n"
+
+#, c-format
+msgid "removing %s...\n"
+msgstr "désinstallation de %s...\n"
+
+#, c-format
+msgid "upgrading %s...\n"
+msgstr "mise à jour de %s...\n"
+
+#, c-format
+msgid "checking package integrity...\n"
+msgstr "analyse de l'intégrité des paquets...\n"
+
+#, c-format
+msgid "checking delta integrity...\n"
+msgstr "analyse de l'intégrité des deltas...\n"
+
+#, c-format
+msgid "applying deltas...\n"
+msgstr "application des deltas...\n"
+
+#, c-format
+msgid "generating %s with %s... "
+msgstr "génération de %s avec %s... "
+
+#, c-format
+msgid "success!\n"
+msgstr "succès !\n"
+
+#, c-format
+msgid "failed.\n"
+msgstr "échec.\n"
+
+#, c-format
+msgid ":: Retrieving packages from %s...\n"
+msgstr ":: Récupération des paquets du dépôt %s...\n"
+
+#, c-format
+msgid "checking available disk space...\n"
+msgstr "vérification de l'espace disque disponible...\n"
+
+#, c-format
+msgid ":: %s is in IgnorePkg/IgnoreGroup. Install anyway?"
+msgstr ""
+":: %s est défini comme paquet à ignorer (IgnorePkg/IgnoreGroup). L'installer "
+"tout de même ?"
+
+#, c-format
+msgid ":: Replace %s with %s/%s?"
+msgstr ":: Remplacer %s par %s/%s ?"
+
+#, c-format
+msgid ":: %s and %s are in conflict. Remove %s?"
+msgstr ":: %s et %s sont en conflit. Supprimer %s ?"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s). Remove %s?"
+msgstr ":: %s et %s sont en conflit (%s). Supprimer %s ?"
+
+#, c-format
+msgid ""
+":: The following package cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgid_plural ""
+":: The following packages cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgstr[0] ""
+":: Le paquet suivant ne peut pas être mis à jour à cause de dépendances "
+"insatisfaisables:\n"
+msgstr[1] ""
+":: Les paquets suivants ne peuvent pas être mis à jour à cause de "
+"dépendances insatisfaisables:\n"
+
+#, c-format
+msgid "Do you want to skip the above package for this upgrade?"
+msgid_plural "Do you want to skip the above packages for this upgrade?"
+msgstr[0] "Voulez-vous ignorer le paquet ci-dessus pour cette mise à jour ?"
+msgstr[1] "Voulez-vous ignorer les paquets ci-dessus pour cette mise à jour ?"
+
+#, c-format
+msgid ":: There are %d providers available for %s:\n"
+msgstr ":: Il y a %d provisions disponibles pour %s:\n"
+
+#, c-format
+msgid ":: %s-%s: local version is newer. Upgrade anyway?"
+msgstr ""
+":: %s-%s: la version locale est plus récente. Mettre à jour tout de même ?"
+
+#, c-format
+msgid ":: File %s is corrupted. Do you want to delete it?"
+msgstr ":: L'archive %s est corrompue. Voulez-vous l'effacer ?"
+
+#, c-format
+msgid "installing"
+msgstr "installation de"
+
+#, c-format
+msgid "upgrading"
+msgstr "mise à jour de"
+
+#, c-format
+msgid "removing"
+msgstr "désinstallation de"
+
+#, c-format
+msgid "checking for file conflicts"
+msgstr "analyse des conflits entre fichiers"
+
+#, c-format
+msgid "checking available disk space"
+msgstr "vérification de l'espace disque disponible"
+
+#, c-format
+msgid "checking package integrity"
+msgstr "vérification de l'intégrité des paquets"
+
+#, c-format
+msgid "downloading %s...\n"
+msgstr "téléchargement de %s...\n"
+
+#, c-format
+msgid "malloc failure: could not allocate %zd bytes\n"
+msgstr "erreur malloc: n'a pas pu allouer %zd octets\n"
+
+#, c-format
+msgid "could not get current working directory\n"
+msgstr "impossible de déterminer le répertoire courant\n"
+
+#, c-format
+msgid "could not chdir to download directory %s\n"
+msgstr "impossible de se placer dans le répertoire de téléchargement %s\n"
+
+#, c-format
+msgid "running XferCommand: fork failed!\n"
+msgstr "exécution de XferCommand: le fork a échoué !\n"
+
+#, c-format
+msgid "could not change directory to %s (%s)\n"
+msgstr "impossible d'aller dans le répertoire %s (%s)\n"
+
+#, c-format
+msgid "invalid value for 'CleanMethod' : '%s'\n"
+msgstr "valeur invalide pour 'CleanMethod' : '%s'\n"
+
+#, c-format
+msgid ""
+"config file %s, line %d: directive '%s' in section '%s' not recognized.\n"
+msgstr ""
+"fichier de configuration %s, ligne %d: l'instruction '%s' dans la section "
+"'%s' n'est pas valide.\n"
+
+#, fuzzy, c-format
+msgid "config file %s, line %d: directive '%s' has invalid value '%s'\n"
+msgstr ""
+"fichier de configuration %s, ligne %d: l'instruction '%s' a besoin d'une "
+"valeur\n"
+
+#, c-format
+msgid ""
+"The mirror '%s' contains the $arch variable, but no Architecture is "
+"defined.\n"
+msgstr ""
+"Le miroir '%s' contient la variable $arch, mais aucune Architecture n'est "
+"définie.\n"
+
+#, c-format
+msgid "could not add server URL to database '%s': %s (%s)\n"
+msgstr ""
+"ne peut pas ajouter l'URL du serveur '%2$s' à la base de données "
+"'%1$s' (%3$s)\n"
+
+#, c-format
+msgid "failed to initialize alpm library (%s)\n"
+msgstr "l'initialisation de la librairie alpm a échoué (%s)\n"
+
+#, c-format
+msgid "problem setting logfile '%s' (%s)\n"
+msgstr "problème en définissant le chemin du fichier de log '%s' (%s)\n"
+
+#, fuzzy, c-format
+msgid "problem setting gpgdir '%s' (%s)\n"
+msgstr "problème en définissant le dossier racine '%s' (%s)\n"
+
+#, c-format
+msgid "could not register '%s' database (%s)\n"
+msgstr "l'enregistrement de la base de données '%s' a échoué (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not set verify option for database '%s' (%s)\n"
+msgstr ""
+"ne peut pas ajouter l'URL du serveur '%2$s' à la base de données "
+"'%1$s' (%3$s)\n"
+
+#, fuzzy, c-format
+msgid "could not add mirror '%s' to database '%s' (%s)\n"
+msgstr ""
+"ne peut pas ajouter l'URL du serveur '%2$s' à la base de données "
+"'%1$s' (%3$s)\n"
+
+#, c-format
+msgid "config parsing exceeded max recursion depth of %d.\n"
+msgstr ""
+
+#, c-format
+msgid "config file %s could not be read.\n"
+msgstr "le fichier de configuration %s n'a pas pu être lu.\n"
+
+#, c-format
+msgid "config file %s, line %d: bad section name.\n"
+msgstr "fichier de configuration %s, ligne %d: mauvais nom de section.\n"
+
+#, c-format
+msgid "config file %s, line %d: syntax error in config file- missing key.\n"
+msgstr ""
+"fichier de configuration %s, ligne %d: erreur de syntaxe - clé manquante.\n"
+
+#, c-format
+msgid "config file %s, line %d: All directives must belong to a section.\n"
+msgstr ""
+"fichier de configuration %s, ligne %d: toutes les instructions doivent "
+"appartenir à une section.\n"
+
+#, c-format
+msgid "config file %s, line %d: directive '%s' needs a value\n"
+msgstr ""
+"fichier de configuration %s, ligne %d: l'instruction '%s' a besoin d'une "
+"valeur\n"
+
+#, c-format
+msgid "no targets specified (use -h for help)\n"
+msgstr "aucune cible spécifiée (utiliser -h pour l'aide)\n"
+
+#, c-format
+msgid "no install reason specified (use -h for help)\n"
+msgstr "aucun motif d'installation spécifié (-h pour l'aide)\n"
+
+#, c-format
+msgid "could not set install reason for package %s (%s)\n"
+msgstr "impossible de changer le motif d'installation pour le paquet %s (%s)\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'installed as dependency'\n"
+msgstr "%s : paquet marqué comme installé en tant que dépendance\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'explicitly installed'\n"
+msgstr "%s: paquet marqué comme étant explicitement installé\n"
+
+#, c-format
+msgid "Explicitly installed"
+msgstr "Explicitement installé"
+
+#, c-format
+msgid "Installed as a dependency for another package"
+msgstr "Installé comme dépendance d'un autre paquet"
+
+#, c-format
+msgid "Unknown"
+msgstr "Inconnu"
+
+#, c-format
+msgid "Repository :"
+msgstr "Dépôt :"
+
+#, c-format
+msgid "Name :"
+msgstr "Nom :"
+
+#, c-format
+msgid "Version :"
+msgstr "Version :"
+
+#, c-format
+msgid "URL :"
+msgstr "URL :"
+
+#, c-format
+msgid "Licenses :"
+msgstr "Licences :"
+
+#, c-format
+msgid "Groups :"
+msgstr "Groupes :"
+
+#, c-format
+msgid "Provides :"
+msgstr "Fournit :"
+
+#, c-format
+msgid "Depends On :"
+msgstr "Dépend de :"
+
+#, c-format
+msgid "Optional Deps :"
+msgstr "Dépendances opt. :"
+
+#, c-format
+msgid "Required By :"
+msgstr "Requis par :"
+
+#, c-format
+msgid "Conflicts With :"
+msgstr "Est en conflit avec :"
+
+#, c-format
+msgid "Replaces :"
+msgstr "Remplace :"
+
+#, fuzzy, c-format
+msgid "Download Size : %6.2f %s\n"
+msgstr "Taille (à télécharger): %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Compressed Size: %6.2f %s\n"
+msgstr "Taille (compressé) : %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Installed Size : %6.2f %s\n"
+msgstr "Taille (installé) : %6.2f K\n"
+
+#, c-format
+msgid "Packager :"
+msgstr "Paqueteur :"
+
+#, c-format
+msgid "Architecture :"
+msgstr "Architecture :"
+
+#, c-format
+msgid "Build Date :"
+msgstr "Compilé le :"
+
+#, c-format
+msgid "Install Date :"
+msgstr "Installé le :"
+
+#, c-format
+msgid "Install Reason :"
+msgstr "Motif d'installation :"
+
+#, c-format
+msgid "Install Script :"
+msgstr "Script d'installation :"
+
+#, c-format
+msgid "Yes"
+msgstr "Oui"
+
+#, c-format
+msgid "No"
+msgstr "Non"
+
+#, c-format
+msgid "MD5 Sum :"
+msgstr "somme MD5 :"
+
+#, c-format
+msgid "Description :"
+msgstr "Description :"
+
+#, c-format
+msgid "could not calculate checksums for %s\n"
+msgstr "ne peut pas calculer les sommes de contrôle pour %s\n"
+
+#, c-format
+msgid "Backup Files:\n"
+msgstr "Fichiers de sauvegarde:\n"
+
+#, c-format
+msgid "(none)\n"
+msgstr "(aucun)\n"
+
+#, c-format
+msgid "no changelog available for '%s'.\n"
+msgstr "changelog non disponible pour '%s'.\n"
+
+#, c-format
+msgid "options"
+msgstr "options"
+
+#, c-format
+msgid "file(s)"
+msgstr "fichier(s)"
+
+#, c-format
+msgid "package(s)"
+msgstr "paquet(s)"
+
+#, c-format
+msgid "usage"
+msgstr "utilisation"
+
+#, c-format
+msgid "operation"
+msgstr "opération"
+
+#, c-format
+msgid "operations:\n"
+msgstr "opérations:\n"
+
+#, c-format
+msgid ""
+"\n"
+"use '%s {-h --help}' with an operation for available options\n"
+msgstr ""
+"\n"
+"utilisez '%s {-h --help}' avec une opération pour voir les options "
+"disponibles.\n"
+
+#, c-format
+msgid ""
+" -c, --cascade remove packages and all packages that depend on them\n"
+msgstr ""
+" -c, --cascade supprime les paquets ainsi que tous ceux qui en "
+"dépendent\n"
+
+#, c-format
+msgid " -n, --nosave remove configuration files\n"
+msgstr " -n, --nosave supprime les fichiers de configuration\n"
+
+#, c-format
+msgid ""
+" -s, --recursive remove unnecessary dependencies\n"
+" (-ss includes explicitly installed dependencies)\n"
+msgstr ""
+" -s, --recursive supprime les dépendances inutiles\n"
+" (-ss inclut les dépendances installées "
+"explicitement)\n"
+
+#, c-format
+msgid " -u, --unneeded remove unneeded packages\n"
+msgstr " -u, --unneeded supprime les paquets inutiles\n"
+
+#, c-format
+msgid " -c, --changelog view the changelog of a package\n"
+msgstr " -c, --changelog affiche le Changelog du paquet\n"
+
+#, c-format
+msgid ""
+" -d, --deps list packages installed as dependencies [filter]\n"
+msgstr ""
+" -d, --deps liste tous les paquets installés en tant que "
+"dépendances [filtre]\n"
+
+#, c-format
+msgid " -e, --explicit list packages explicitly installed [filter]\n"
+msgstr ""
+" -e, --explicit liste tous les paquets installés explicitement "
+"[filtre]\n"
+
+#, c-format
+msgid " -g, --groups view all members of a package group\n"
+msgstr ""
+" -g, --groups affiche tous les éléments d'un groupe de paquet\n"
+
+#, c-format
+msgid ""
+" -i, --info view package information (-ii for backup files)\n"
+msgstr ""
+" -i, --info affiche les informations d'un paquet (-ii pour "
+"les fichiers de config protégés)\n"
+
+#, c-format
+msgid ""
+" -k, --check check that the files owned by the package(s) are "
+"present\n"
+msgstr ""
+" -k, --check vérifie que les fichiers du paquet sont tous bien "
+"présents\n"
+
+#, c-format
+msgid " -l, --list list the contents of the queried package\n"
+msgstr " -l, --list liste le contenu du paquet interrogé\n"
+
+#, c-format
+msgid ""
+" -m, --foreign list installed packages not found in sync db(s) "
+"[filter]\n"
+msgstr ""
+" -m, --foreign liste les paquets non trouvés dans la ou les "
+"bases de données de synchronisation [filtre]\n"
+
+#, c-format
+msgid " -o, --owns <file> query the package that owns <file>\n"
+msgstr ""
+" -o, --owns <fichier> recherche le paquet contenant le fichier "
+"<fichier>\n"
+
+#, c-format
+msgid " -p, --file <package> query a package file instead of the database\n"
+msgstr ""
+" -p, --file <paquet> interroge le fichier <paquet> au lieu de la base "
+"de données\n"
+
+#, c-format
+msgid " -q, --quiet show less information for query and search\n"
+msgstr " -q, --quiet montre moins d'informations\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search locally-installed packages for matching "
+"strings\n"
+msgstr ""
+" -s, --search <regex> recherche la chaîne correspondante dans les "
+"paquets installés localement\n"
+
+#, c-format
+msgid ""
+" -t, --unrequired list packages not required by any package [filter]\n"
+msgstr ""
+" -t, --unrequired liste tous les paquets qui ne sont requis par "
+"aucun autre [filtre]\n"
+
+#, c-format
+msgid " -u, --upgrades list outdated packages [filter]\n"
+msgstr ""
+" -u, --upgrades liste tous les paquets pouvant être mis à jour "
+"[filtre]\n"
+
+#, c-format
+msgid ""
+" -c, --clean remove old packages from cache directory (-cc for "
+"all)\n"
+msgstr ""
+" -c, --clean supprime les paquets obsolètes du cache (-cc pour "
+"tous)\n"
+
+#, c-format
+msgid " -i, --info view package information\n"
+msgstr " -i, --info affiche les informations du paquet\n"
+
+#, c-format
+msgid " -l, --list <repo> view a list of packages in a repo\n"
+msgstr " -l, --list <dépôt> liste tous les paquets d'un dépôt\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search remote repositories for matching strings\n"
+msgstr ""
+" -s, --search <regex> recherche la chaîne correspondante dans les "
+"dépôts distants\n"
+
+#, c-format
+msgid ""
+" -u, --sysupgrade upgrade installed packages (-uu allows downgrade)\n"
+msgstr ""
+" -u, --sysupgrade met à jour tous les paquets installés\n"
+" (-uu permet de restaurer des versions "
+"antérieures)\n"
+
+#, c-format
+msgid ""
+" -w, --downloadonly download packages but do not install/upgrade "
+"anything\n"
+msgstr ""
+" -w, --downloadonly ne fait que télécharger les paquets, sans rien "
+"installer\n"
+
+#, c-format
+msgid ""
+" -y, --refresh download fresh package databases from the server\n"
+msgstr ""
+" -y, --refresh met à jour les bases de données depuis le "
+"serveur\n"
+
+#, c-format
+msgid " --needed don't reinstall up to date packages\n"
+msgstr " --needed ne réinstalle pas les paquets déjà à jour\n"
+
+#, c-format
+msgid " --asdeps mark packages as non-explicitly installed\n"
+msgstr " --asdeps marque les paquets comme dépendances\n"
+
+#, c-format
+msgid " --asexplicit mark packages as explicitly installed\n"
+msgstr ""
+" --asexplicit marque les paquets comme explicitement installés\n"
+
+#, c-format
+msgid " -f, --force force install, overwrite conflicting files\n"
+msgstr ""
+" -f, --force force l'installation, en écrasant les fichiers "
+"déjà présents\n"
+
+#, c-format
+msgid " --asdeps install packages as non-explicitly installed\n"
+msgstr ""
+" --asdeps installe les paquets en tant que dépendances\n"
+
+#, c-format
+msgid " --asexplicit install packages as explicitly installed\n"
+msgstr " --asexplicit installe les paquets explicitement\n"
+
+#, c-format
+msgid ""
+" --ignore <pkg> ignore a package upgrade (can be used more than "
+"once)\n"
+msgstr ""
+" --ignore <paquet> ignore un paquet lors de la màj (peut être "
+"utilisé plusieurs fois)\n"
+
+#, c-format
+msgid ""
+" --ignoregroup <grp>\n"
+" ignore a group upgrade (can be used more than once)\n"
+msgstr ""
+" --ignoregroup <grp>\n"
+" ignore un groupe lors de la màj (peut être "
+"utilisé plusieurs fois)\n"
+
+#, c-format
+msgid ""
+" -d, --nodeps skip dependency version checks (-dd to skip all "
+"checks)\n"
+msgstr ""
+" -d, --nodeps ignore les versions des dépendances\n"
+" (-dd pour ignorer complètement toute dépendance)\n"
+
+#, c-format
+msgid ""
+" -k, --dbonly only modify database entries, not package files\n"
+msgstr " -k, --dbonly modifie uniquement la base de données\n"
+
+#, c-format
+msgid ""
+" --noprogressbar do not show a progress bar when downloading files\n"
+msgstr ""
+" --noprogressbar n'affiche pas la barre de progression pendant le "
+"téléchargement\n"
+
+#, c-format
+msgid ""
+" --noscriptlet do not execute the install scriptlet if one exists\n"
+msgstr ""
+" --noscriptlet n'exécute pas le script d'installation, si le "
+"paquet en contient\n"
+
+#, c-format
+msgid ""
+" --print print the targets instead of performing the "
+"operation\n"
+msgstr ""
+" --print affiche les cibles sans exécuter l'opération\n"
+
+#, c-format
+msgid ""
+" --print-format <string>\n"
+" specify how the targets should be printed\n"
+msgstr ""
+" --print-format <format>\n"
+" spécifie le format d'affichage\n"
+
+#, c-format
+msgid " -b, --dbpath <path> set an alternate database location\n"
+msgstr ""
+" -b, --dbpath <chemin> définit l'emplacement de la base de données\n"
+
+#, c-format
+msgid " -r, --root <path> set an alternate installation root\n"
+msgstr " -r, --root <chemin> définit la racine où installer\n"
+
+#, c-format
+msgid " -v, --verbose be verbose\n"
+msgstr " -v, --verbose affiche plus de détails\n"
+
+#, c-format
+msgid " --arch <arch> set an alternate architecture\n"
+msgstr " --arch <arch> spécifie une architecture\n"
+
+#, c-format
+msgid " --cachedir <dir> set an alternate package cache location\n"
+msgstr " --cachedir <dir> définit le dossier de cache\n"
+
+#, c-format
+msgid " --config <path> set an alternate configuration file\n"
+msgstr ""
+" --config <chemin> impose un fichier de configuration alternatif\n"
+
+#, c-format
+msgid " --debug display debug messages\n"
+msgstr " --debug affiche les messages de débogage\n"
+
+#, fuzzy, c-format
+msgid " --gpgdir <path> set an alternate home directory for GnuPG\n"
+msgstr " --logfile <path> spécifie le fichier de log\n"
+
+#, c-format
+msgid " --logfile <path> set an alternate log file\n"
+msgstr " --logfile <path> spécifie le fichier de log\n"
+
+#, c-format
+msgid " --noconfirm do not ask for any confirmation\n"
+msgstr " --noconfirm ne demande aucune confirmation\n"
+
+#, c-format
+msgid ""
+" This program may be freely redistributed under\n"
+" the terms of the GNU General Public License.\n"
+msgstr ""
+" Ce programme peut être librement redistribué\n"
+" sous les termes de la licence GNU GPL.\n"
+
+#, c-format
+msgid "'%s' is not a valid debug level\n"
+msgstr "'%s' n'est pas un niveau de débogage valide\n"
+
+#, c-format
+msgid "only one operation may be used at a time\n"
+msgstr "une seule opération peut être effectuée à la fois\n"
+
+#, c-format
+msgid "invalid option\n"
+msgstr "option invalide\n"
+
+#, c-format
+msgid "buffer overflow detected in arg parsing\n"
+msgstr "débordement de tampon détecté en parsant les arguments\n"
+
+#, c-format
+msgid "failed to reopen stdin for reading: (%s)\n"
+msgstr "impossible de lire l'entrée standard : (%s)\n"
+
+#, c-format
+msgid "you cannot perform this operation unless you are root.\n"
+msgstr "vous ne pouvez pas effectuer cette opération à moins d'être root.\n"
+
+#, c-format
+msgid "no operation specified (use -h for help)\n"
+msgstr "aucune opération spécifiée (utiliser -h pour l'aide)\n"
+
+#, c-format
+msgid "%s is owned by %s %s\n"
+msgstr "%s appartient à %s %s\n"
+
+#, c-format
+msgid "no file was specified for --owns\n"
+msgstr "aucun fichier spécifié pour --owns\n"
+
+#, c-format
+msgid "failed to find '%s' in PATH: %s\n"
+msgstr "impossible de trouver '%s' dans le PATH: %s\n"
+
+#, c-format
+msgid "failed to read file '%s': %s\n"
+msgstr "ne peut pas lire le fichier '%s': %s\n"
+
+#, c-format
+msgid "cannot determine ownership of directory '%s'\n"
+msgstr "impossible de déterminer le propriétaire du répertoire '%s'\n"
+
+#, c-format
+msgid "cannot determine real path for '%s': %s\n"
+msgstr "ne peut déterminer le vrai chemin pour '%s': %s\n"
+
+#, c-format
+msgid "path too long: %s%s\n"
+msgstr "chemin trop long: %s%s\n"
+
+#, c-format
+msgid "No package owns %s\n"
+msgstr "aucun paquet ne contient %s\n"
+
+#, c-format
+msgid "group \"%s\" was not found\n"
+msgstr "le groupe \"%s\" n'a pas été trouvé\n"
+
+#, c-format
+msgid "%s: %d total file, "
+msgid_plural "%s: %d total files, "
+msgstr[0] "%s: %d fichier au total, "
+msgstr[1] "%s: %d fichiers au total, "
+
+#, c-format
+msgid "%d missing file\n"
+msgid_plural "%d missing files\n"
+msgstr[0] "%d fichier manquant\n"
+msgstr[1] "%d fichiers manquants\n"
+
+#, c-format
+msgid "no usable package repositories configured.\n"
+msgstr "aucun dépôt de paquets utilisable n'a été défini.\n"
+
+#, c-format
+msgid "package \"%s\" not found\n"
+msgstr "paquet \"%s\" introuvable\n"
+
+#, c-format
+msgid "failed to prepare transaction (%s)\n"
+msgstr "la préparation de la transaction a échoué (%s)\n"
+
+#, c-format
+msgid ":: package %s does not have a valid architecture\n"
+msgstr ":: le paquet %s a une architecture invalide.\n"
+
+#, c-format
+msgid ":: %s: requires %s\n"
+msgstr ":: %s: requiert %s\n"
+
+#, c-format
+msgid "%s is designated as a HoldPkg.\n"
+msgstr "%s est indiqué comme paquet à conserver (HoldPkg).\n"
+
+#, c-format
+msgid "HoldPkg was found in target list. Do you want to continue?"
+msgstr ""
+"Une des cibles est un paquet à conserver (HoldPkg). Voulez-vous continuer ?"
+
+#, c-format
+msgid " there is nothing to do\n"
+msgstr " il n'y a rien à faire\n"
+
+#, c-format
+msgid "Do you want to remove these packages?"
+msgstr "Voulez-vous désinstaller ces paquets ?"
+
+#, c-format
+msgid "failed to commit transaction (%s)\n"
+msgstr "la validation de la transaction a échoué (%s)\n"
+
+#, c-format
+msgid "could not access database directory\n"
+msgstr "l'accès au dossier des dépôts a échoué\n"
+
+#, c-format
+msgid "could not remove %s\n"
+msgstr "impossible de supprimer %s\n"
+
+#, c-format
+msgid "Do you want to remove %s?"
+msgstr "Voulez-vous désinstaller %s ?"
+
+#, c-format
+msgid "Database directory: %s\n"
+msgstr "Répertoire des dépôts: %s\n"
+
+#, c-format
+msgid "Do you want to remove unused repositories?"
+msgstr "Voulez-vous supprimer les dépôts non utilisés ?"
+
+#, c-format
+msgid "Database directory cleaned up\n"
+msgstr "Répertoire des dépôts nettoyés\n"
+
+#, c-format
+msgid "Cache directory: %s\n"
+msgstr "Répertoire du cache : %s\n"
+
+#, c-format
+msgid "Packages to keep:\n"
+msgstr "Paquets à conserver:\n"
+
+#, c-format
+msgid " All locally installed packages\n"
+msgstr " Tous les paquets installés\n"
+
+#, c-format
+msgid " All current sync database packages\n"
+msgstr " Tous les paquets actuellement dans un dépôt\n"
+
+#, c-format
+msgid "Do you want to remove all other packages from cache?"
+msgstr "Voulez-vous supprimer tous les autres paquets du cache ?"
+
+#, c-format
+msgid "removing old packages from cache...\n"
+msgstr "suppression des paquets obsolètes du cache...\n"
+
+#, c-format
+msgid "Do you want to remove ALL files from cache?"
+msgstr "Voulez vous supprimer TOUS les fichiers du cache ?"
+
+#, c-format
+msgid "removing all files from cache...\n"
+msgstr "suppression de tous les fichiers du cache...\n"
+
+#, c-format
+msgid "could not access cache directory %s\n"
+msgstr "ne peut pas accéder au dossier du cache %s\n"
+
+#, c-format
+msgid "File %s does not seem to be a valid package, remove it?"
+msgstr "Le fichier %s n'est pas un paquet valide, voulez-vous le supprimer ?"
+
+#, c-format
+msgid "failed to update %s (%s)\n"
+msgstr "la mise à jour de %s a échoué (%s)\n"
+
+#, c-format
+msgid " %s is up to date\n"
+msgstr " %s est à jour;\n"
+
+#, c-format
+msgid "failed to synchronize any databases\n"
+msgstr "la synchronisation a échoué\n"
+
+#, c-format
+msgid "installed"
+msgstr "installé"
+
+#, c-format
+msgid "repository '%s' does not exist\n"
+msgstr "le dépôt '%s' n'a pas été trouvé\n"
+
+#, c-format
+msgid "package '%s' was not found in repository '%s'\n"
+msgstr "le paquet '%s' n'a pas été trouvé dans le dépôt '%s'\n"
+
+#, c-format
+msgid "package '%s' was not found\n"
+msgstr "le paquet '%s' n'a pas été trouvé.\n"
+
+#, c-format
+msgid "repository \"%s\" was not found.\n"
+msgstr "le dépôt \"%s\" n'a pas été trouvé.\n"
+
+#, c-format
+msgid "skipping target: %s\n"
+msgstr "omission de la cible: %s\n"
+
+#, c-format
+msgid "target not found: %s\n"
+msgstr "impossible de trouver la cible: %s\n"
+
+#, c-format
+msgid ":: There are %d members in group %s:\n"
+msgstr ":: Il y a %d membres dans le groupe %s\n"
+
+#, c-format
+msgid "database not found: %s\n"
+msgstr "impossible de trouver le dépôt: %s\n"
+
+#, c-format
+msgid ":: Starting full system upgrade...\n"
+msgstr ":: Début de la mise à jour complète du système...\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict\n"
+msgstr ":: %s et %s sont en conflit\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s)\n"
+msgstr ":: %s et %s sont en conflit (%s)\n"
+
+#, c-format
+msgid "Proceed with download?"
+msgstr "Procéder au téléchargement ?"
+
+#, c-format
+msgid "Proceed with installation?"
+msgstr "Procéder à l'installation ?"
+
+#, c-format
+msgid "%s exists in both '%s' and '%s'\n"
+msgstr "%s est présent à la fois dans '%s' et '%s'\n"
+
+#, c-format
+msgid "%s: %s exists in filesystem\n"
+msgstr "%s: %s est déjà présent dans le système de fichiers\n"
+
+#, c-format
+msgid "%s is invalid or corrupted\n"
+msgstr "%s est invalide ou corrompu\n"
+
+#, c-format
+msgid "Errors occurred, no packages were upgraded.\n"
+msgstr "Des erreurs se sont produites, aucun paquet n'a été mis à jour.\n"
+
+#, c-format
+msgid ":: Synchronizing package databases...\n"
+msgstr ":: Synchronisation des bases de données de paquets...\n"
+
+#, c-format
+msgid ":: The following packages should be upgraded first :\n"
+msgstr ":: Les paquets suivants devraient être mis à jour en premier :\n"
+
+#, c-format
+msgid ""
+":: Do you want to cancel the current operation\n"
+":: and upgrade these packages now?"
+msgstr ""
+":: Voulez-vous annuler l'opération courante et\n"
+":: mettre à jour ces paquets maintenant ?"
+
+#, c-format
+msgid "failed to init transaction (%s)\n"
+msgstr "l'initialisation de la transaction a échoué (%s)\n"
+
+#, c-format
+msgid ""
+" if you're sure a package manager is not already\n"
+" running, you can remove %s\n"
+msgstr ""
+" Si vous êtes sûr qu'un gestionnaire de paquet n'est pas déjà\n"
+" en cours de fonctionnement, vous pouvez supprimer %s.\n"
+
+#, c-format
+msgid " try running pacman-db-upgrade\n"
+msgstr " essayez de lancer pacman-db-upgrade\n"
+
+#, c-format
+msgid "failed to release transaction (%s)\n"
+msgstr "la libération de la transaction a échoué (%s)\n"
+
+#, c-format
+msgid "None"
+msgstr "--"
+
+#, c-format
+msgid "insufficient columns available for table display\n"
+msgstr ""
+
+#, c-format
+msgid "Name"
+msgstr ""
+
+#, c-format
+msgid "Old Version"
+msgstr ""
+
+#, c-format
+msgid "New Version"
+msgstr ""
+
+#, c-format
+msgid "Size"
+msgstr ""
+
+#, c-format
+msgid "Targets (%d):"
+msgstr "Cibles (%d):"
+
+#, c-format
+msgid "Remove (%d):"
+msgstr "Suppression (%d):"
+
+#, fuzzy, c-format
+msgid "Total Download Size: %.2f %s\n"
+msgstr "Taille totale des paquets (téléchargement): %.2f Mo\n"
+
+#, fuzzy, c-format
+msgid "Total Installed Size: %.2f %s\n"
+msgstr "Taille totale des paquets (installation): %.2f Mo\n"
+
+#, fuzzy, c-format
+msgid "Net Upgrade Size: %.2f %s\n"
+msgstr "Taille totale des paquets (téléchargement): %.2f Mo\n"
+
+#, fuzzy, c-format
+msgid "Total Removed Size: %.2f %s\n"
+msgstr "Taille totale des paquets (suppression): %.2f Mo\n"
+
+#, c-format
+msgid "New optional dependencies for %s\n"
+msgstr "Nouvelles dépendances optionnelles pour %s\n"
+
+#, c-format
+msgid "Optional dependencies for %s\n"
+msgstr "Dépendances optionnelles pour %s\n"
+
+#, c-format
+msgid "Repository %s\n"
+msgstr "Dépôt %s\n"
+
+#, c-format
+msgid "Invalid value: %d is not between %d and %d\n"
+msgstr "Valeur invalide: %d n'est pas compris entre %d et %d\n"
+
+#, c-format
+msgid "Invalid number: %s\n"
+msgstr "Nombre invalide: %s\n"
+
+#, c-format
+msgid "Enter a selection (default=all)"
+msgstr "Entrez une sélection (par défaut, tout est sélectionné)"
+
+#, c-format
+msgid "Enter a number (default=%d)"
+msgstr "Entrez un nombre (par défaut, %d est sélectionné)"
+
+#, c-format
+msgid "[Y/n]"
+msgstr "[O/n]"
+
+#, c-format
+msgid "[y/N]"
+msgstr "[o/N]"
+
+#, c-format
+msgid "Y"
+msgstr "O"
+
+#, c-format
+msgid "YES"
+msgstr "OUI"
+
+#, c-format
+msgid "N"
+msgstr "N"
+
+#, c-format
+msgid "NO"
+msgstr "NON"
+
+#, c-format
+msgid "failed to allocate string\n"
+msgstr "problème d'allocation mémoire\n"
+
+#, c-format
+msgid "error: %s"
+msgstr "Erreur: %s"
+
+#, c-format
+msgid "warning: %s"
+msgstr "Avertissement: %s"
+
+#, c-format
+msgid "error: "
+msgstr "Erreur: "
+
+#, c-format
+msgid "warning: "
+msgstr "Avertissement: "
+
diff --git a/src/pacman/po/hu.po b/src/pacman/po/hu.po
new file mode 100644
index 00000000..532414e9
--- /dev/null
+++ b/src/pacman/po/hu.po
@@ -0,0 +1,1131 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Pacman Development Team <pacman-dev@archlinux.org>
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Arch Linux Pacman package manager\n"
+"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
+"POT-Creation-Date: 2011-06-23 21:59-0500\n"
+"PO-Revision-Date: 2011-04-16 17:39+0000\n"
+"Last-Translator: ngaba <ngaba@bibl.u-szeged.hu>\n"
+"Language-Team: Hungarian <None>\n"
+"Language: hu\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"
+
+#, c-format
+msgid "checking dependencies...\n"
+msgstr "függőségek vizsgálata...\n"
+
+#, c-format
+msgid "checking for file conflicts...\n"
+msgstr "fájlütközések vizsgálata...\n"
+
+#, c-format
+msgid "resolving dependencies...\n"
+msgstr "függőségek feloldása...\n"
+
+#, c-format
+msgid "looking for inter-conflicts...\n"
+msgstr "belső ütközések keresése...\n"
+
+#, c-format
+msgid "installing %s...\n"
+msgstr "%s telepítése...\n"
+
+#, c-format
+msgid "removing %s...\n"
+msgstr "%s eltávolítása...\n"
+
+#, c-format
+msgid "upgrading %s...\n"
+msgstr "%s frissítése...\n"
+
+#, c-format
+msgid "checking package integrity...\n"
+msgstr "csomagok integritásának ellenőrzése...\n"
+
+#, c-format
+msgid "checking delta integrity...\n"
+msgstr "delták integritásának ellenőrzése...\n"
+
+#, c-format
+msgid "applying deltas...\n"
+msgstr "delták alkalmazása...\n"
+
+#, c-format
+msgid "generating %s with %s... "
+msgstr "%s létrehozása %s segítségével... "
+
+#, c-format
+msgid "success!\n"
+msgstr "sikeres.\n"
+
+#, c-format
+msgid "failed.\n"
+msgstr "sikertelen.\n"
+
+#, c-format
+msgid ":: Retrieving packages from %s...\n"
+msgstr ":: Csomagok letöltése a(z) %s repóból...\n"
+
+#, c-format
+msgid "checking available disk space...\n"
+msgstr "szabad lemezterület ellenőrzése...\n"
+
+#, c-format
+msgid ":: %s is in IgnorePkg/IgnoreGroup. Install anyway?"
+msgstr ":: %s az IgnorePkg/IgnoreGroup része. Mégis telepíti?"
+
+#, c-format
+msgid ":: Replace %s with %s/%s?"
+msgstr ":: Lecseréli %s-t erre: %s/%s?"
+
+#, c-format
+msgid ":: %s and %s are in conflict. Remove %s?"
+msgstr ":: A(z) %s és a(z) %s ütközik egymással. Eltávolítja a %s-t?"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s). Remove %s?"
+msgstr ":: A(z) %s és a(z) %s ütközik egymással (%s). Eltávolítja a %s-t?"
+
+#, c-format
+msgid ""
+":: The following package cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgid_plural ""
+":: The following packages cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgstr[0] ""
+":: az alábbi csomagot nem lehet telepíteni feloldhatatlan függőségek miatt:\n"
+msgstr[1] ""
+":: az alábbi csomagokat nem lehet telepíteni feloldhatatlan függőségek "
+"miatt:\n"
+
+#, c-format
+msgid "Do you want to skip the above package for this upgrade?"
+msgid_plural "Do you want to skip the above packages for this upgrade?"
+msgstr[0] "Mellőzzük a fenti csomag telepítését?"
+msgstr[1] "Mellőzzük a fenti csomagok telepítését?"
+
+#, c-format
+msgid ":: There are %d providers available for %s:\n"
+msgstr ":: %d csomag szolgáltatja a(z) %s-t:\n"
+
+#, c-format
+msgid ":: %s-%s: local version is newer. Upgrade anyway?"
+msgstr ":: %s-%s: a helyi verzió újabb. Mégis \"frissíti\"?"
+
+#, c-format
+msgid ":: File %s is corrupted. Do you want to delete it?"
+msgstr ":: A %s fájl sérült. Kívánja törölni?"
+
+#, c-format
+msgid "installing"
+msgstr "telepítés:"
+
+#, c-format
+msgid "upgrading"
+msgstr "frissítés:"
+
+#, c-format
+msgid "removing"
+msgstr "eltávolítás:"
+
+#, c-format
+msgid "checking for file conflicts"
+msgstr "fájlütközések vizsgálata"
+
+#, c-format
+msgid "checking available disk space"
+msgstr "szabad lemezterület ellenőrzése"
+
+#, c-format
+msgid "checking package integrity"
+msgstr "csomagok integritásának ellenőrzése"
+
+#, c-format
+msgid "downloading %s...\n"
+msgstr "%s letöltése...\n"
+
+#, c-format
+msgid "malloc failure: could not allocate %zd bytes\n"
+msgstr "malloc hiba: nem sikerült %zd bájtot lefoglalni\n"
+
+#, c-format
+msgid "could not get current working directory\n"
+msgstr "nem sikerült megállapítani az aktuális könyvtárat\n"
+
+#, c-format
+msgid "could not chdir to download directory %s\n"
+msgstr "nem sikerült belépni a %s letöltési könytárba\n"
+
+#, c-format
+msgid "running XferCommand: fork failed!\n"
+msgstr "XferCommand futtatása: sikertelen fork!\n"
+
+#, c-format
+msgid "could not change directory to %s (%s)\n"
+msgstr "nem sikerült könyvtárat váltani %s-re (%s)\n"
+
+#, c-format
+msgid "invalid value for 'CleanMethod' : '%s'\n"
+msgstr "hibás 'CleanMethod' érték: '%s'\n"
+
+#, c-format
+msgid ""
+"config file %s, line %d: directive '%s' in section '%s' not recognized.\n"
+msgstr ""
+"%s konfigurációs fájl, %d. sor: ismeretlen '%s' direktíva a(z) '%s' "
+"szekcióban.\n"
+
+#, fuzzy, c-format
+msgid "config file %s, line %d: directive '%s' has invalid value '%s'\n"
+msgstr ""
+"%s konfigurációs fájl, %d. sor: a(z) '%s' direktívának értéket kell adni\n"
+
+#, c-format
+msgid ""
+"The mirror '%s' contains the $arch variable, but no Architecture is "
+"defined.\n"
+msgstr ""
+"A(z) '%s' tükör $arch változót tartalmaz, de nincs architektúra definiálva.\n"
+
+#, c-format
+msgid "could not add server URL to database '%s': %s (%s)\n"
+msgstr "nem sikerült a szerver URL beállítása a(z) '%s' adatbázison: %s (%s)\n"
+
+#, c-format
+msgid "failed to initialize alpm library (%s)\n"
+msgstr "nem sikerült inicializálni az alpm könyvtárat (%s)\n"
+
+#, c-format
+msgid "problem setting logfile '%s' (%s)\n"
+msgstr "hiba történt a(z) '%s' naplófájl beállítása során (%s)\n"
+
+#, fuzzy, c-format
+msgid "problem setting gpgdir '%s' (%s)\n"
+msgstr ""
+"hiba történt a(z) '%s' telepítési gyökérkönyvtár beállítása során (%s)\n"
+
+#, c-format
+msgid "could not register '%s' database (%s)\n"
+msgstr "nem sikerült regisztrálni a(z) '%s' adatbázist (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not set verify option for database '%s' (%s)\n"
+msgstr "nem sikerült a szerver URL beállítása a(z) '%s' adatbázison: %s (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not add mirror '%s' to database '%s' (%s)\n"
+msgstr "nem sikerült a szerver URL beállítása a(z) '%s' adatbázison: %s (%s)\n"
+
+#, c-format
+msgid "config parsing exceeded max recursion depth of %d.\n"
+msgstr ""
+
+#, c-format
+msgid "config file %s could not be read.\n"
+msgstr "a %s konfigurációs fájl nem olvasható.\n"
+
+#, c-format
+msgid "config file %s, line %d: bad section name.\n"
+msgstr "%s konfigurációs fájl, %d. sor: hibás szekciónév.\n"
+
+#, c-format
+msgid "config file %s, line %d: syntax error in config file- missing key.\n"
+msgstr "%s konfigurációs fájl, %d. sor: szintaktikai hiba- hiányzó kulcs.\n"
+
+#, c-format
+msgid "config file %s, line %d: All directives must belong to a section.\n"
+msgstr ""
+"%s konfigurációs fájl, %d. sor: Minden direktívának egy szekcióhoz kell "
+"tartoznia.\n"
+
+#, c-format
+msgid "config file %s, line %d: directive '%s' needs a value\n"
+msgstr ""
+"%s konfigurációs fájl, %d. sor: a(z) '%s' direktívának értéket kell adni\n"
+
+#, c-format
+msgid "no targets specified (use -h for help)\n"
+msgstr "nincs megadva egyetlen cél sem (használja a '-h'-t segítségért)\n"
+
+#, c-format
+msgid "no install reason specified (use -h for help)\n"
+msgstr "nincs megadva a telepítés oka (használja a '-h'-t segítségért)\n"
+
+#, c-format
+msgid "could not set install reason for package %s (%s)\n"
+msgstr "nem sikerült beállítani a telepítés okát a(z) %s csomaghoz (%s)\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'installed as dependency'\n"
+msgstr ""
+"%s: a telepítés okát beállítottam arra, hogy 'függőségként telepítve'\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'explicitly installed'\n"
+msgstr "%s: a telepítés okát beállítottam arra, hogy 'kézzel telepítve'\n"
+
+#, c-format
+msgid "Explicitly installed"
+msgstr "Kézzel telepítve"
+
+#, c-format
+msgid "Installed as a dependency for another package"
+msgstr "Egy másik csomag függőségeként lett telepítve"
+
+#, c-format
+msgid "Unknown"
+msgstr "Ismeretlen"
+
+#, c-format
+msgid "Repository :"
+msgstr "Repó :"
+
+#, c-format
+msgid "Name :"
+msgstr "Név :"
+
+#, c-format
+msgid "Version :"
+msgstr "Verzió :"
+
+#, c-format
+msgid "URL :"
+msgstr "URL :"
+
+#, c-format
+msgid "Licenses :"
+msgstr "Licencek :"
+
+#, c-format
+msgid "Groups :"
+msgstr "Csoportok :"
+
+#, c-format
+msgid "Provides :"
+msgstr "Szolgáltatja :"
+
+#, c-format
+msgid "Depends On :"
+msgstr "Függ :"
+
+#, c-format
+msgid "Optional Deps :"
+msgstr "Opcionális függ.:"
+
+#, c-format
+msgid "Required By :"
+msgstr "Igényli :"
+
+#, c-format
+msgid "Conflicts With :"
+msgstr "Ütközik :"
+
+#, c-format
+msgid "Replaces :"
+msgstr "Lecseréli :"
+
+#, fuzzy, c-format
+msgid "Download Size : %6.2f %s\n"
+msgstr "Letöltendő méret: %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Compressed Size: %6.2f %s\n"
+msgstr "Tömörített méret: %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Installed Size : %6.2f %s\n"
+msgstr "Telepített méret: %6.2f K\n"
+
+#, c-format
+msgid "Packager :"
+msgstr "Csomagoló :"
+
+#, c-format
+msgid "Architecture :"
+msgstr "Architektúra :"
+
+#, c-format
+msgid "Build Date :"
+msgstr "Fordítás ideje :"
+
+#, c-format
+msgid "Install Date :"
+msgstr "Telepítés ideje :"
+
+#, c-format
+msgid "Install Reason :"
+msgstr "Telepítés oka :"
+
+#, c-format
+msgid "Install Script :"
+msgstr "Telepítő szkript:"
+
+#, c-format
+msgid "Yes"
+msgstr "Igen"
+
+#, c-format
+msgid "No"
+msgstr "Nem"
+
+#, c-format
+msgid "MD5 Sum :"
+msgstr "MD5 Sum :"
+
+#, c-format
+msgid "Description :"
+msgstr "Leírás :"
+
+#, c-format
+msgid "could not calculate checksums for %s\n"
+msgstr "nem sikerült a(z) %s ellenőrző összegének számítása\n"
+
+#, c-format
+msgid "Backup Files:\n"
+msgstr "Backup fájlok:\n"
+
+#, c-format
+msgid "(none)\n"
+msgstr "(nincs)\n"
+
+#, c-format
+msgid "no changelog available for '%s'.\n"
+msgstr "nem áll rendelkezésre változási napló a(z) '%s' csomaghoz.\n"
+
+#, c-format
+msgid "options"
+msgstr "opciók"
+
+#, c-format
+msgid "file(s)"
+msgstr "fájl(ok)"
+
+#, c-format
+msgid "package(s)"
+msgstr "csomag(ok)"
+
+#, c-format
+msgid "usage"
+msgstr "használat"
+
+#, c-format
+msgid "operation"
+msgstr "művelet"
+
+#, c-format
+msgid "operations:\n"
+msgstr "műveletek:\n"
+
+#, c-format
+msgid ""
+"\n"
+"use '%s {-h --help}' with an operation for available options\n"
+msgstr ""
+"\n"
+"a '%s {-h --help}' után egy műveletet megadva a vonatkozó opciókat kapjuk\n"
+
+#, c-format
+msgid ""
+" -c, --cascade remove packages and all packages that depend on them\n"
+msgstr ""
+" -c, --cascade a csomagok és az őket igénylő csomagok eltávolítása\n"
+
+#, c-format
+msgid " -n, --nosave remove configuration files\n"
+msgstr " -n, --nosave törölje a konfigurációs fájlokat\n"
+
+#, c-format
+msgid ""
+" -s, --recursive remove unnecessary dependencies\n"
+" (-ss includes explicitly installed dependencies)\n"
+msgstr ""
+" -s, --recursive a feleslegessé váló függőségeket is távolítsa el\n"
+" (-ss a kézzel telepített függőségeket is "
+"eltávolítja)\n"
+
+#, c-format
+msgid " -u, --unneeded remove unneeded packages\n"
+msgstr ""
+" -u, --unneeded a megmaradó csomagok által igényelt csomagok "
+"kihagyása\n"
+
+#, c-format
+msgid " -c, --changelog view the changelog of a package\n"
+msgstr " -c, --changelog egy csomag változási naplójának megtekintése\n"
+
+#, c-format
+msgid ""
+" -d, --deps list packages installed as dependencies [filter]\n"
+msgstr ""
+" -d, --deps a függőségként telepített csomagok listázása [szűrő]\n"
+
+#, c-format
+msgid " -e, --explicit list packages explicitly installed [filter]\n"
+msgstr ""
+" -e, --explicit a kézzel telepített csomagok listázása [szűrő]\n"
+
+#, c-format
+msgid " -g, --groups view all members of a package group\n"
+msgstr " -g, --groups egy csoport összes tagjának megtekintése\n"
+
+#, c-format
+msgid ""
+" -i, --info view package information (-ii for backup files)\n"
+msgstr ""
+" -i, --info csomaginformációk megtekintése (-ii: backup fájlok "
+"is)\n"
+
+#, c-format
+msgid ""
+" -k, --check check that the files owned by the package(s) are "
+"present\n"
+msgstr ""
+" -k, --check ellenőrzi, hogy a csomag(ok) által telepített fájlok\n"
+" jelen vannak-e a rendszerben\n"
+
+#, c-format
+msgid " -l, --list list the contents of the queried package\n"
+msgstr " -l, --list a lekérdezett csomag tartalmának listázása\n"
+
+#, c-format
+msgid ""
+" -m, --foreign list installed packages not found in sync db(s) "
+"[filter]\n"
+msgstr ""
+" -m, --foreign a távoli repókban nem talált csomagok listázása "
+"[szűrő]\n"
+
+#, c-format
+msgid " -o, --owns <file> query the package that owns <file>\n"
+msgstr " -o, --owns <fájl> a <fájl>-t tartalmazó csomag lekérdezése\n"
+
+#, c-format
+msgid " -p, --file <package> query a package file instead of the database\n"
+msgstr ""
+" -p, --file <csomag> a <csomag> csomagfájl lekérdezése az adatbázis "
+"helyett\n"
+
+#, c-format
+msgid " -q, --quiet show less information for query and search\n"
+msgstr ""
+" -q, --quiet kevesebb információ mutatása lekérdezésnél és "
+"keresésnél\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search locally-installed packages for matching "
+"strings\n"
+msgstr " -s, --search <regex> keresés a telepített csomagok között\n"
+
+#, c-format
+msgid ""
+" -t, --unrequired list packages not required by any package [filter]\n"
+msgstr ""
+" -t, --unrequired a többi csomag által nem igényelt csomagok listázása "
+"[sz]\n"
+
+#, c-format
+msgid " -u, --upgrades list outdated packages [filter]\n"
+msgstr " -u, --upgrades az elavult csomagok listázása [szűrő]\n"
+
+#, c-format
+msgid ""
+" -c, --clean remove old packages from cache directory (-cc for "
+"all)\n"
+msgstr ""
+" -c, --clean a régi csomagok törlése a gyorsítótárkönyvtárból\n"
+" (használja a '-cc'-t az összeshez)\n"
+
+#, c-format
+msgid " -i, --info view package information\n"
+msgstr " -i, --info csomaginformációk megtekintése\n"
+
+#, c-format
+msgid " -l, --list <repo> view a list of packages in a repo\n"
+msgstr " -l, --list <repó> egy repó csomagjainak listázása\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search remote repositories for matching strings\n"
+msgstr " -s, --search <regex> keresés a távoli csomagadatbázisokban\n"
+
+#, c-format
+msgid ""
+" -u, --sysupgrade upgrade installed packages (-uu allows downgrade)\n"
+msgstr ""
+" -u, --sysupgrade az elavult csomagok frissítése (-uu: ill. "
+"downgradelése)\n"
+
+#, c-format
+msgid ""
+" -w, --downloadonly download packages but do not install/upgrade "
+"anything\n"
+msgstr " -w, --downloadonly csak letöltés, de nem telepít/frissít semmit\n"
+
+#, c-format
+msgid ""
+" -y, --refresh download fresh package databases from the server\n"
+msgstr " -y, --refresh friss csomagadatbázis letöltése a szerverről\n"
+
+#, c-format
+msgid " --needed don't reinstall up to date packages\n"
+msgstr " --needed ne telepítse újra a naprakész csomagokat\n"
+
+#, c-format
+msgid " --asdeps mark packages as non-explicitly installed\n"
+msgstr ""
+" --asdeps csomagok megjelölése függőségként telepítettként\n"
+
+#, c-format
+msgid " --asexplicit mark packages as explicitly installed\n"
+msgstr " --asexplicit csomagok megjelölése kézzel telepítettként\n"
+
+#, c-format
+msgid " -f, --force force install, overwrite conflicting files\n"
+msgstr ""
+" -f, --force a telepítés erőltetése, ütköző fájlok felülírása\n"
+
+#, c-format
+msgid " --asdeps install packages as non-explicitly installed\n"
+msgstr " --asdeps csomagok telepítése 'függőség' jelöléssel\n"
+
+#, c-format
+msgid " --asexplicit install packages as explicitly installed\n"
+msgstr ""
+" --asexplicit csomagok telepítése 'kézzel telepítve' jelöléssel\n"
+
+#, c-format
+msgid ""
+" --ignore <pkg> ignore a package upgrade (can be used more than "
+"once)\n"
+msgstr ""
+" --ignore <csom.> csomagfrissítés mellőzése (többször is használható)\n"
+
+#, c-format
+msgid ""
+" --ignoregroup <grp>\n"
+" ignore a group upgrade (can be used more than once)\n"
+msgstr ""
+" --ignoregroup <csoport>\n"
+" csoportfrissítés mellőzése (többször is használható)\n"
+
+#, c-format
+msgid ""
+" -d, --nodeps skip dependency version checks (-dd to skip all "
+"checks)\n"
+msgstr ""
+" -d, --nodeps függőségverzió-ellenőrzések kihagyása\n"
+" (-dd: minden függőség-ellenőrzés kihagyása)\n"
+
+#, c-format
+msgid ""
+" -k, --dbonly only modify database entries, not package files\n"
+msgstr ""
+" -k, --dbonly csak az adatbázis-bejegyzéseket módosítsa, a fájlokat "
+"ne\n"
+
+#, c-format
+msgid ""
+" --noprogressbar do not show a progress bar when downloading files\n"
+msgstr ""
+" --noprogressbar ne mutasson folyamatsávot a fájlok letöltése közben\n"
+
+#, c-format
+msgid ""
+" --noscriptlet do not execute the install scriptlet if one exists\n"
+msgstr " --noscriptlet ne futtassa az install szkripteket\n"
+
+#, c-format
+msgid ""
+" --print print the targets instead of performing the "
+"operation\n"
+msgstr ""
+" --print a célok listázása a művelet végrehajtása helyett\n"
+
+#, c-format
+msgid ""
+" --print-format <string>\n"
+" specify how the targets should be printed\n"
+msgstr ""
+" --print-format <sztring>\n"
+" a megadott formátum használata csomaglistázás során\n"
+
+#, c-format
+msgid " -b, --dbpath <path> set an alternate database location\n"
+msgstr " -b, --dbpath <útv.> alternatív adatbáziskönyvtár beállítása\n"
+
+#, c-format
+msgid " -r, --root <path> set an alternate installation root\n"
+msgstr ""
+" -r, --root <útvonal> alternatív telepítési gyökérkönyvtár beállítása\n"
+
+#, c-format
+msgid " -v, --verbose be verbose\n"
+msgstr " -v, --verbose legyen bőbeszédű\n"
+
+#, c-format
+msgid " --arch <arch> set an alternate architecture\n"
+msgstr " --arch <arch> alternatív architektúra beállítása\n"
+
+#, c-format
+msgid " --cachedir <dir> set an alternate package cache location\n"
+msgstr ""
+" --cachedir <kvt> alternatív csomaggyorsítótár-könyvtár beállítása\n"
+
+#, c-format
+msgid " --config <path> set an alternate configuration file\n"
+msgstr " --config <útv.> alternatív konfigurációs fájl beállítása\n"
+
+#, c-format
+msgid " --debug display debug messages\n"
+msgstr " --debug hibakeresési üzenetek megjelenítése\n"
+
+#, fuzzy, c-format
+msgid " --gpgdir <path> set an alternate home directory for GnuPG\n"
+msgstr " --logfile <útv.> alternatív logfájl beállítása\n"
+
+#, c-format
+msgid " --logfile <path> set an alternate log file\n"
+msgstr " --logfile <útv.> alternatív logfájl beállítása\n"
+
+#, c-format
+msgid " --noconfirm do not ask for any confirmation\n"
+msgstr " --noconfirm ne kérjen soha megerősítést\n"
+
+#, c-format
+msgid ""
+" This program may be freely redistributed under\n"
+" the terms of the GNU General Public License.\n"
+msgstr ""
+" Ez a program szabadon terjeszthető a GNU\n"
+" General Public License feltételei szerint.\n"
+
+#, c-format
+msgid "'%s' is not a valid debug level\n"
+msgstr "a(z) '%s' nem érvényes hibakeresési szint\n"
+
+#, c-format
+msgid "only one operation may be used at a time\n"
+msgstr "csak egy művelet hajtható végre egyszerre\n"
+
+#, c-format
+msgid "invalid option\n"
+msgstr "érvénytelen opció\n"
+
+#, c-format
+msgid "buffer overflow detected in arg parsing\n"
+msgstr "puffer túlcsordulást észleltem az argumentumok olvasásakor\n"
+
+#, c-format
+msgid "failed to reopen stdin for reading: (%s)\n"
+msgstr "nem sikerült újra megnyitni az stdin-t olvasásra: (%s)\n"
+
+#, c-format
+msgid "you cannot perform this operation unless you are root.\n"
+msgstr "ez a művelet csak rendszergazdaként hajtható végre.\n"
+
+#, c-format
+msgid "no operation specified (use -h for help)\n"
+msgstr "nincs megadva egyetlen művelet sem (használja a '-h'-t segítségért)\n"
+
+#, c-format
+msgid "%s is owned by %s %s\n"
+msgstr "a %s fájlt a %s %s tartalmazza\n"
+
+#, c-format
+msgid "no file was specified for --owns\n"
+msgstr "nincs megadva fájl a --owns számára\n"
+
+#, c-format
+msgid "failed to find '%s' in PATH: %s\n"
+msgstr "nem található '%s' a PATH-ben: %s\n"
+
+#, c-format
+msgid "failed to read file '%s': %s\n"
+msgstr "nem sikerült olvasni a '%s' fájlt: %s\n"
+
+#, c-format
+msgid "cannot determine ownership of directory '%s'\n"
+msgstr "a '%s' könyvtár tulajdonos-csomagját nem lehet megállapítani\n"
+
+#, c-format
+msgid "cannot determine real path for '%s': %s\n"
+msgstr "nem állapítható meg a valódi útvonal a(z) '%s' számára: %s\n"
+
+#, c-format
+msgid "path too long: %s%s\n"
+msgstr "az útvonal túl hosszú: %s%s\n"
+
+#, c-format
+msgid "No package owns %s\n"
+msgstr "Egyik csomag sem tartalmazza a következőt: %s\n"
+
+#, c-format
+msgid "group \"%s\" was not found\n"
+msgstr "a(z) \"%s\" csoport nem található\n"
+
+#, c-format
+msgid "%s: %d total file, "
+msgid_plural "%s: %d total files, "
+msgstr[0] "%s: összesen %d fájl, "
+msgstr[1] "%s: összesen %d fájl, "
+
+#, c-format
+msgid "%d missing file\n"
+msgid_plural "%d missing files\n"
+msgstr[0] "%d hiányzó fájl\n"
+msgstr[1] "%d hiányzó fájl\n"
+
+#, c-format
+msgid "no usable package repositories configured.\n"
+msgstr "egyetlen használható csomagrepó sincs beállítva.\n"
+
+#, c-format
+msgid "package \"%s\" not found\n"
+msgstr "a(z) \"%s\" csomag nem található\n"
+
+#, c-format
+msgid "failed to prepare transaction (%s)\n"
+msgstr "nem sikerült előkészíteni a tranzakciót (%s)\n"
+
+#, c-format
+msgid ":: package %s does not have a valid architecture\n"
+msgstr ":: a(z) %s csomagnak nincs érvényes architektúra-definíciója\n"
+
+#, c-format
+msgid ":: %s: requires %s\n"
+msgstr ":: %s: igényli a következőt: %s\n"
+
+#, c-format
+msgid "%s is designated as a HoldPkg.\n"
+msgstr "%s HoldPkgnak lett jelölve.\n"
+
+#, c-format
+msgid "HoldPkg was found in target list. Do you want to continue?"
+msgstr ""
+"HoldPkg csomagot találtam a cél listában. Biztos benne, hogy folytatja?"
+
+#, c-format
+msgid " there is nothing to do\n"
+msgstr " nincs teendő\n"
+
+#, c-format
+msgid "Do you want to remove these packages?"
+msgstr "El kívánja távolítani ezeket a csomagokat?"
+
+#, c-format
+msgid "failed to commit transaction (%s)\n"
+msgstr "nem sikerült végrehajtani a tranzakciót (%s)\n"
+
+#, c-format
+msgid "could not access database directory\n"
+msgstr "nem sikerült elérni az adatbáziskönyvtárt\n"
+
+#, c-format
+msgid "could not remove %s\n"
+msgstr "nem sikerült eltávolítani a(z) %s-t\n"
+
+#, c-format
+msgid "Do you want to remove %s?"
+msgstr "El kívánja távolítani következőt: %s?"
+
+#, c-format
+msgid "Database directory: %s\n"
+msgstr "Adatbáziskönyvtár: %s\n"
+
+#, c-format
+msgid "Do you want to remove unused repositories?"
+msgstr "El kívánja távolítani a nem használt repókat?"
+
+#, c-format
+msgid "Database directory cleaned up\n"
+msgstr "Adatbáziskönyvtár kitakarítva\n"
+
+#, c-format
+msgid "Cache directory: %s\n"
+msgstr "Gyorsítótár könyvtár: %s\n"
+
+#, c-format
+msgid "Packages to keep:\n"
+msgstr "Megtartandó csomagok:\n"
+
+#, c-format
+msgid " All locally installed packages\n"
+msgstr " Az összes telepített csomag\n"
+
+#, c-format
+msgid " All current sync database packages\n"
+msgstr " A távoli repókban megtalálható összes csomag\n"
+
+#, c-format
+msgid "Do you want to remove all other packages from cache?"
+msgstr "Törölni kívánja az összes többi csomagot a gyorsítótárból?"
+
+#, c-format
+msgid "removing old packages from cache...\n"
+msgstr "a régi csomagok törlése a gyorsítótárból...\n"
+
+#, c-format
+msgid "Do you want to remove ALL files from cache?"
+msgstr "Törölni kívánja az ÖSSZES fájlt a gyorsítótárból?"
+
+#, c-format
+msgid "removing all files from cache...\n"
+msgstr "az összes fájl törlése a gyorsítótárból...\n"
+
+#, c-format
+msgid "could not access cache directory %s\n"
+msgstr "nem sikerült elérni a %s gyorsítótár-könyvtárat\n"
+
+#, c-format
+msgid "File %s does not seem to be a valid package, remove it?"
+msgstr "A %s fájl érvénytelen csomagnak tűnik, eltávolítja?"
+
+#, c-format
+msgid "failed to update %s (%s)\n"
+msgstr "nem sikerült a(z) %s frissítése (%s)\n"
+
+#, c-format
+msgid " %s is up to date\n"
+msgstr " a(z) %s naprakész\n"
+
+#, c-format
+msgid "failed to synchronize any databases\n"
+msgstr "nem sikerült szinkronizálni egyik adatbázist sem\n"
+
+#, c-format
+msgid "installed"
+msgstr "telepítve"
+
+#, c-format
+msgid "repository '%s' does not exist\n"
+msgstr "hiba: a(z) '%s' repó nem létezik\n"
+
+#, c-format
+msgid "package '%s' was not found in repository '%s'\n"
+msgstr "a(z) '%s' csomag nem található a(z) '%s' repóban\n"
+
+#, c-format
+msgid "package '%s' was not found\n"
+msgstr "a(z) '%s' csomag nem található\n"
+
+#, c-format
+msgid "repository \"%s\" was not found.\n"
+msgstr "a(z) \"%s\" repó nem található.\n"
+
+#, c-format
+msgid "skipping target: %s\n"
+msgstr "cél kihagyása: %s\n"
+
+#, c-format
+msgid "target not found: %s\n"
+msgstr "cél nem található: %s\n"
+
+#, c-format
+msgid ":: There are %d members in group %s:\n"
+msgstr ":: A(z) %2$s csoportnak %1$d tagja van:\n"
+
+#, c-format
+msgid "database not found: %s\n"
+msgstr "az adatbázis nem található: %s\n"
+
+#, c-format
+msgid ":: Starting full system upgrade...\n"
+msgstr ":: Teljes rendszerfrissítés indítása...\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict\n"
+msgstr ":: a(z) %s és a(z) %s ütközik egymással\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s)\n"
+msgstr ":: a(z) %s és a(z) %s ütközik egymással (%s)\n"
+
+#, c-format
+msgid "Proceed with download?"
+msgstr "Kezdődhet a letöltés?"
+
+#, c-format
+msgid "Proceed with installation?"
+msgstr "Kezdődhet a telepítés?"
+
+#, c-format
+msgid "%s exists in both '%s' and '%s'\n"
+msgstr "%s létezik ebben: '%s' és ebben: '%s'\n"
+
+#, c-format
+msgid "%s: %s exists in filesystem\n"
+msgstr "%s: %s létezik a fájlrendszerben\n"
+
+#, c-format
+msgid "%s is invalid or corrupted\n"
+msgstr "%s hibás vagy sérült\n"
+
+#, c-format
+msgid "Errors occurred, no packages were upgraded.\n"
+msgstr "Hibák léptek fel, nem frissült csomag.\n"
+
+#, c-format
+msgid ":: Synchronizing package databases...\n"
+msgstr ":: A csomagadatbázisok szinkronizálása...\n"
+
+#, c-format
+msgid ":: The following packages should be upgraded first :\n"
+msgstr ":: A következő csomagok telepítése javasolt elsőként:\n"
+
+#, c-format
+msgid ""
+":: Do you want to cancel the current operation\n"
+":: and upgrade these packages now?"
+msgstr ""
+":: Megszakítja a jelenlegi jelenlegi műveletet,\n"
+":: és telepíti ezeket a csomagokat most?"
+
+#, c-format
+msgid "failed to init transaction (%s)\n"
+msgstr "nem sikerült inicializálni a tranzakciót (%s)\n"
+
+#, c-format
+msgid ""
+" if you're sure a package manager is not already\n"
+" running, you can remove %s\n"
+msgstr ""
+" ha biztos benne, hogy nem fut másik csomagkezelő,\n"
+" akkor eltávolíthatja a %s fájlt\n"
+
+#, c-format
+msgid " try running pacman-db-upgrade\n"
+msgstr " próbálkozz a pacman-db-upgrade futtatásával\n"
+
+#, c-format
+msgid "failed to release transaction (%s)\n"
+msgstr "nem sikerült lezárni a tranzakciót (%s)\n"
+
+#, c-format
+msgid "None"
+msgstr "Nincs"
+
+#, c-format
+msgid "insufficient columns available for table display\n"
+msgstr ""
+
+#, c-format
+msgid "Name"
+msgstr ""
+
+#, c-format
+msgid "Old Version"
+msgstr ""
+
+#, c-format
+msgid "New Version"
+msgstr ""
+
+#, c-format
+msgid "Size"
+msgstr ""
+
+#, c-format
+msgid "Targets (%d):"
+msgstr "Célok (%d):"
+
+#, c-format
+msgid "Remove (%d):"
+msgstr "Eltávolítás (%d):"
+
+#, fuzzy, c-format
+msgid "Total Download Size: %.2f %s\n"
+msgstr "Teljes letöltendő méret: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Installed Size: %.2f %s\n"
+msgstr "Teljes telepített méret: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Net Upgrade Size: %.2f %s\n"
+msgstr "Teljes letöltendő méret: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Removed Size: %.2f %s\n"
+msgstr "Teljes eltávolított méret: %.2f MB\n"
+
+#, c-format
+msgid "New optional dependencies for %s\n"
+msgstr "A(z) %s csomag új opcionális függőségei:\n"
+
+#, c-format
+msgid "Optional dependencies for %s\n"
+msgstr "A(z) %s csomag opcionális függőségei:\n"
+
+#, c-format
+msgid "Repository %s\n"
+msgstr "%s repó\n"
+
+#, c-format
+msgid "Invalid value: %d is not between %d and %d\n"
+msgstr "Érvénytelen érték: %d nem %d és %d között van\n"
+
+#, c-format
+msgid "Invalid number: %s\n"
+msgstr "Érvénytelen szám: %s\n"
+
+#, c-format
+msgid "Enter a selection (default=all)"
+msgstr "Adjon meg egy listát (alapértelmezett=all)"
+
+#, c-format
+msgid "Enter a number (default=%d)"
+msgstr "Adjon meg egy számot (alapértelmezett=%d)"
+
+#, c-format
+msgid "[Y/n]"
+msgstr "[I/n]"
+
+#, c-format
+msgid "[y/N]"
+msgstr "[i/N]"
+
+#, c-format
+msgid "Y"
+msgstr "I"
+
+#, c-format
+msgid "YES"
+msgstr "IGEN"
+
+#, c-format
+msgid "N"
+msgstr "N"
+
+#, c-format
+msgid "NO"
+msgstr "NEM"
+
+#, c-format
+msgid "failed to allocate string\n"
+msgstr "nem sikerült a string elhelyezése\n"
+
+#, c-format
+msgid "error: %s"
+msgstr "hiba: %s"
+
+#, c-format
+msgid "warning: %s"
+msgstr "figyelmeztetés: %s"
+
+#, c-format
+msgid "error: "
+msgstr "hiba: "
+
+#, c-format
+msgid "warning: "
+msgstr "figyelmeztetés: "
+
diff --git a/src/pacman/po/it.po b/src/pacman/po/it.po
new file mode 100644
index 00000000..15ce0ecc
--- /dev/null
+++ b/src/pacman/po/it.po
@@ -0,0 +1,1153 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Pacman Development Team <pacman-dev@archlinux.org>
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Arch Linux Pacman package manager\n"
+"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
+"POT-Creation-Date: 2011-06-23 21:59-0500\n"
+"PO-Revision-Date: 2011-04-10 16:14+0000\n"
+"Last-Translator: giovanni <giovanni@archlinux.org>\n"
+"Language-Team: Italian <None>\n"
+"Language: it\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"
+
+#, c-format
+msgid "checking dependencies...\n"
+msgstr "controllo delle dipendenze in corso...\n"
+
+#, c-format
+msgid "checking for file conflicts...\n"
+msgstr "controllo dei conflitti in corso...\n"
+
+#, c-format
+msgid "resolving dependencies...\n"
+msgstr "risoluzione delle dipendenze in corso...\n"
+
+#, c-format
+msgid "looking for inter-conflicts...\n"
+msgstr "ricerca dei conflitti in corso...\n"
+
+#, c-format
+msgid "installing %s...\n"
+msgstr "installazione di %s in corso...\n"
+
+#, c-format
+msgid "removing %s...\n"
+msgstr "rimozione di %s in corso...\n"
+
+#, c-format
+msgid "upgrading %s...\n"
+msgstr "aggiornamento di %s in corso...\n"
+
+#, c-format
+msgid "checking package integrity...\n"
+msgstr "controllo dell'integrità dei pacchetti in corso...\n"
+
+#, c-format
+msgid "checking delta integrity...\n"
+msgstr "controllo dell'integrità del delta in corso...\n"
+
+#, c-format
+msgid "applying deltas...\n"
+msgstr "applicazione dei delta in corso...\n"
+
+#, c-format
+msgid "generating %s with %s... "
+msgstr "generazione di %s con %s in corso... "
+
+#, c-format
+msgid "success!\n"
+msgstr "operazione riuscita con successo!\n"
+
+#, c-format
+msgid "failed.\n"
+msgstr "non riuscito.\n"
+
+#, c-format
+msgid ":: Retrieving packages from %s...\n"
+msgstr ":: Download dei pacchetti da %s...\n"
+
+#, c-format
+msgid "checking available disk space...\n"
+msgstr "controllo dello spazio disponibile sul disco...\n"
+
+#, c-format
+msgid ":: %s is in IgnorePkg/IgnoreGroup. Install anyway?"
+msgstr ":: %s è in IgnorePkg/IgnoreGroup. Vuoi installarlo?"
+
+#, c-format
+msgid ":: Replace %s with %s/%s?"
+msgstr ":: Vuoi sostituire %s con %s/%s?"
+
+#, c-format
+msgid ":: %s and %s are in conflict. Remove %s?"
+msgstr ":: %s e %s vanno in conflitto. Vuoi rimuovere %s?"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s). Remove %s?"
+msgstr ":: %s e %s vanno in conflitto (%s). Vuoi rimuovere %s?"
+
+#, c-format
+msgid ""
+":: The following package cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgid_plural ""
+":: The following packages cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgstr[0] ""
+":: Il seguente pacchetto non può essere aggiornato a causa di alcune "
+"dipendenze irrisolvibili:\n"
+msgstr[1] ""
+":: I seguenti pacchetti non possono essere aggiornati a causa di alcune "
+"dipendenze irrisolvibili:\n"
+
+#, c-format
+msgid "Do you want to skip the above package for this upgrade?"
+msgid_plural "Do you want to skip the above packages for this upgrade?"
+msgstr[0] "Vuoi ignorare il seguente pacchetto per questo aggiornamento?"
+msgstr[1] "Vuoi ignorare i seguenti pacchetti per questo aggiornamento?"
+
+#, c-format
+msgid ":: There are %d providers available for %s:\n"
+msgstr ":: Ci sono %d fornitori disponibili per %s:\n"
+
+#, c-format
+msgid ":: %s-%s: local version is newer. Upgrade anyway?"
+msgstr ":: %s-%s: la versione installata è più recente. Vuoi aggiornarlo?"
+
+#, c-format
+msgid ":: File %s is corrupted. Do you want to delete it?"
+msgstr ":: Il file %s è corrotto. Vuoi eliminarlo?"
+
+#, c-format
+msgid "installing"
+msgstr "installazione in corso di"
+
+#, c-format
+msgid "upgrading"
+msgstr "aggiornamento in corso di"
+
+#, c-format
+msgid "removing"
+msgstr "rimozione in corso di"
+
+#, c-format
+msgid "checking for file conflicts"
+msgstr "controllo dei conflitti in corso"
+
+#, c-format
+msgid "checking available disk space"
+msgstr "controllo dello spazio disponibile sul disco"
+
+#, c-format
+msgid "checking package integrity"
+msgstr "controllo dell'integrità del pacchetto"
+
+#, c-format
+msgid "downloading %s...\n"
+msgstr "download di %s in corso...\n"
+
+#, c-format
+msgid "malloc failure: could not allocate %zd bytes\n"
+msgstr "malloc fallita: impossibile allocare %zd byte\n"
+
+#, c-format
+msgid "could not get current working directory\n"
+msgstr "impossibile determinare l'attuale directory di lavoro\n"
+
+#, c-format
+msgid "could not chdir to download directory %s\n"
+msgstr "impossibile entrare nella directory del download %s\n"
+
+#, c-format
+msgid "running XferCommand: fork failed!\n"
+msgstr "avvio in corso di XferCommand: processo non riuscito!\n"
+
+#, c-format
+msgid "could not change directory to %s (%s)\n"
+msgstr "impossibile entrare nella directory %s (%s)\n"
+
+#, c-format
+msgid "invalid value for 'CleanMethod' : '%s'\n"
+msgstr "valore non valido per 'CleanMethod' : '%s'\n"
+
+#, c-format
+msgid ""
+"config file %s, line %d: directive '%s' in section '%s' not recognized.\n"
+msgstr ""
+"file di configurazione %s, riga %d: la direttiva '%s' presente nella sezione "
+"'%s' non è stata riconosciuta.\n"
+
+#, fuzzy, c-format
+msgid "config file %s, line %d: directive '%s' has invalid value '%s'\n"
+msgstr ""
+"file di configurazione %s, riga %d: la direttiva '%s' necessita di un "
+"valore\n"
+
+#, c-format
+msgid ""
+"The mirror '%s' contains the $arch variable, but no Architecture is "
+"defined.\n"
+msgstr ""
+"Il mirror '%s' contiene la variabile $arch, ma l'architettura non è stata "
+"definita.\n"
+
+#, c-format
+msgid "could not add server URL to database '%s': %s (%s)\n"
+msgstr "impossibile aggiungere l'URL del server al database '%s': %s (%s)\n"
+
+#, c-format
+msgid "failed to initialize alpm library (%s)\n"
+msgstr "impossibile inizializzare la libreria alpm (%s)\n"
+
+#, c-format
+msgid "problem setting logfile '%s' (%s)\n"
+msgstr ""
+"si è verificato un errore durante l'impostazione del file di log '%s' (%s)\n"
+
+#, fuzzy, c-format
+msgid "problem setting gpgdir '%s' (%s)\n"
+msgstr ""
+"si è verificato un problema durante l'impostazione della rootdir '%s' (%s)\n"
+
+#, c-format
+msgid "could not register '%s' database (%s)\n"
+msgstr "impossibile registrare il database '%s' (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not set verify option for database '%s' (%s)\n"
+msgstr "impossibile aggiungere l'URL del server al database '%s': %s (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not add mirror '%s' to database '%s' (%s)\n"
+msgstr "impossibile aggiungere l'URL del server al database '%s': %s (%s)\n"
+
+#, c-format
+msgid "config parsing exceeded max recursion depth of %d.\n"
+msgstr ""
+
+#, c-format
+msgid "config file %s could not be read.\n"
+msgstr "il file di configurazione %s potrebbe non essere leggibile.\n"
+
+#, c-format
+msgid "config file %s, line %d: bad section name.\n"
+msgstr "file di configurazione %s, linea %d: il nome della sezione è errato.\n"
+
+#, c-format
+msgid "config file %s, line %d: syntax error in config file- missing key.\n"
+msgstr ""
+"file di configurazione %s, linea %d: errore di sintassi, manca una chiave.\n"
+
+#, c-format
+msgid "config file %s, line %d: All directives must belong to a section.\n"
+msgstr ""
+"file di configurazione %s, linea %d: tutte le direttive devono appartenere "
+"ad una sezione.\n"
+
+#, c-format
+msgid "config file %s, line %d: directive '%s' needs a value\n"
+msgstr ""
+"file di configurazione %s, riga %d: la direttiva '%s' necessita di un "
+"valore\n"
+
+#, c-format
+msgid "no targets specified (use -h for help)\n"
+msgstr "non è stato specificato nessun pacchetto (usa -h per un aiuto)\n"
+
+#, c-format
+msgid "no install reason specified (use -h for help)\n"
+msgstr ""
+"non è stato specificato nessun motivo per l'installazione (usa -h per un "
+"aiuto)\n"
+
+#, c-format
+msgid "could not set install reason for package %s (%s)\n"
+msgstr ""
+"impossibile impostare un motivo per l'installazione del pacchetto %s (%s)\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'installed as dependency'\n"
+msgstr ""
+"%s: il motivo dell'installazione è stato impostato come 'installato come "
+"dipendenza'\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'explicitly installed'\n"
+msgstr ""
+"%s: il motivo dell'installazione è stato impostato come 'installato "
+"esplicitamente'\n"
+
+#, c-format
+msgid "Explicitly installed"
+msgstr "Installato esplicitamente"
+
+#, c-format
+msgid "Installed as a dependency for another package"
+msgstr "Installato come dipendenza di un altro pacchetto"
+
+#, c-format
+msgid "Unknown"
+msgstr "Sconosciuto"
+
+#, c-format
+msgid "Repository :"
+msgstr "Repository :"
+
+#, c-format
+msgid "Name :"
+msgstr "Nome :"
+
+#, c-format
+msgid "Version :"
+msgstr "Versione :"
+
+#, c-format
+msgid "URL :"
+msgstr "URL :"
+
+#, c-format
+msgid "Licenses :"
+msgstr "Licenze :"
+
+#, c-format
+msgid "Groups :"
+msgstr "Gruppi :"
+
+#, c-format
+msgid "Provides :"
+msgstr "Fornisce :"
+
+#, c-format
+msgid "Depends On :"
+msgstr "Dipende da :"
+
+#, c-format
+msgid "Optional Deps :"
+msgstr "Dip. opzionali :"
+
+#, c-format
+msgid "Required By :"
+msgstr "Richiesto da :"
+
+#, c-format
+msgid "Conflicts With :"
+msgstr "Conflitti con :"
+
+#, c-format
+msgid "Replaces :"
+msgstr "Sostituisce :"
+
+#, fuzzy, c-format
+msgid "Download Size : %6.2f %s\n"
+msgstr "Dimensione pkg : %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Compressed Size: %6.2f %s\n"
+msgstr "Dimensione pkg : %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Installed Size : %6.2f %s\n"
+msgstr "Kb richiesti : %6.2f K\n"
+
+#, c-format
+msgid "Packager :"
+msgstr "Autore :"
+
+#, c-format
+msgid "Architecture :"
+msgstr "Architettura :"
+
+#, c-format
+msgid "Build Date :"
+msgstr "Creato il :"
+
+#, c-format
+msgid "Install Date :"
+msgstr "Installato il :"
+
+#, c-format
+msgid "Install Reason :"
+msgstr "Motivo :"
+
+#, c-format
+msgid "Install Script :"
+msgstr "Script install :"
+
+#, c-format
+msgid "Yes"
+msgstr "Sì"
+
+#, c-format
+msgid "No"
+msgstr "No"
+
+#, c-format
+msgid "MD5 Sum :"
+msgstr "Somma MD5 :"
+
+#, c-format
+msgid "Description :"
+msgstr "Descrizione :"
+
+#, c-format
+msgid "could not calculate checksums for %s\n"
+msgstr "impossibile calcolare i checksum di %s\n"
+
+#, c-format
+msgid "Backup Files:\n"
+msgstr "File di backup:\n"
+
+#, c-format
+msgid "(none)\n"
+msgstr "(nessuno)\n"
+
+#, c-format
+msgid "no changelog available for '%s'.\n"
+msgstr "nessun changelog disponibile per '%s'.\n"
+
+#, c-format
+msgid "options"
+msgstr "opzioni"
+
+#, c-format
+msgid "file(s)"
+msgstr "file"
+
+#, c-format
+msgid "package(s)"
+msgstr "pacchetto(i)"
+
+#, c-format
+msgid "usage"
+msgstr "uso"
+
+#, c-format
+msgid "operation"
+msgstr "operazione"
+
+#, c-format
+msgid "operations:\n"
+msgstr "operazioni:\n"
+
+#, c-format
+msgid ""
+"\n"
+"use '%s {-h --help}' with an operation for available options\n"
+msgstr ""
+"\n"
+"usa '%s {-h --help}' con un'operazione per le opzioni disponibili\n"
+
+#, c-format
+msgid ""
+" -c, --cascade remove packages and all packages that depend on them\n"
+msgstr ""
+" -c, --cascade rimuove i pacchetti e tutti quelli che dipendono da "
+"essi\n"
+
+#, c-format
+msgid " -n, --nosave remove configuration files\n"
+msgstr " -n, --nosave rimuove i file di configurazione\n"
+
+#, c-format
+msgid ""
+" -s, --recursive remove unnecessary dependencies\n"
+" (-ss includes explicitly installed dependencies)\n"
+msgstr ""
+" -s, --recursive rimuove le dipendenze non necessarie\n"
+" (-ss include quelle installate esplicitamente)\n"
+
+#, c-format
+msgid " -u, --unneeded remove unneeded packages\n"
+msgstr " -u, --unneeded rimuove i pacchetti non necessari\n"
+
+#, c-format
+msgid " -c, --changelog view the changelog of a package\n"
+msgstr " -c, --changelog mostra il changelog di un pacchetto\n"
+
+#, c-format
+msgid ""
+" -d, --deps list packages installed as dependencies [filter]\n"
+msgstr ""
+" -d, --deps elenca i pacchetti installati come dipendenze "
+"[filtro]\n"
+
+#, c-format
+msgid " -e, --explicit list packages explicitly installed [filter]\n"
+msgstr ""
+" -e, --explicit elenca i pacchetti installati esplicitamente "
+"[filtro]\n"
+
+#, c-format
+msgid " -g, --groups view all members of a package group\n"
+msgstr " -g, --groups mostra tutti i pacchetti di un gruppo\n"
+
+#, c-format
+msgid ""
+" -i, --info view package information (-ii for backup files)\n"
+msgstr ""
+" -i, --info mostra le informazioni del pacchetto (-ii per il "
+"backup)\n"
+
+#, c-format
+msgid ""
+" -k, --check check that the files owned by the package(s) are "
+"present\n"
+msgstr ""
+" -k, --check controlla che i file del(i) pacchetto(i) siano "
+"presenti\n"
+
+#, c-format
+msgid " -l, --list list the contents of the queried package\n"
+msgstr " -l, --list elenca i file contenuti nel pacchetto\n"
+
+#, c-format
+msgid ""
+" -m, --foreign list installed packages not found in sync db(s) "
+"[filter]\n"
+msgstr ""
+" -m, --foreign elenca i pacchetti installati ma non trovati nei "
+"database [filtro]\n"
+
+#, c-format
+msgid " -o, --owns <file> query the package that owns <file>\n"
+msgstr " -o, --owns <file> interroga il pacchetto che contiene il <file>\n"
+
+#, c-format
+msgid " -p, --file <package> query a package file instead of the database\n"
+msgstr ""
+" -p, --file <pacchetto> interroga un file del pacchetto invece del "
+"database\n"
+
+#, c-format
+msgid " -q, --quiet show less information for query and search\n"
+msgstr " -q, --quiet mostra meno informazioni per query e ricerca\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search locally-installed packages for matching "
+"strings\n"
+msgstr ""
+" -s, --search <regex> cerca nei pacchetti installati le stringhe "
+"corrispondenti\n"
+
+#, c-format
+msgid ""
+" -t, --unrequired list packages not required by any package [filter]\n"
+msgstr ""
+" -t, --unrequired elenca i pacchetti non richiesti da nessuno [filtro]\n"
+
+#, c-format
+msgid " -u, --upgrades list outdated packages [filter]\n"
+msgstr " -u, --upgrades elenca i pacchetti non aggiornati [filtro]\n"
+
+#, c-format
+msgid ""
+" -c, --clean remove old packages from cache directory (-cc for "
+"all)\n"
+msgstr ""
+" -c, --clean rimuove i vecchi pacchetti dalla cache (usa -cc per\n"
+" rimuoverli tutti)\n"
+
+#, c-format
+msgid " -i, --info view package information\n"
+msgstr " -i, --info mostra le informazioni del pacchetto\n"
+
+#, c-format
+msgid " -l, --list <repo> view a list of packages in a repo\n"
+msgstr ""
+" -l, --list <repo> mostra la lista dei pacchetti di un repository\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search remote repositories for matching strings\n"
+msgstr ""
+" -s, --search <regex> cerca le stringhe corrispondenti nei repository "
+"remoti\n"
+
+#, c-format
+msgid ""
+" -u, --sysupgrade upgrade installed packages (-uu allows downgrade)\n"
+msgstr ""
+" -u, --sysupgrade aggiorna tutti i pacchetti (-uu permette il "
+"downgrade)\n"
+
+#, c-format
+msgid ""
+" -w, --downloadonly download packages but do not install/upgrade "
+"anything\n"
+msgstr ""
+" -w, --downloadonly scarica i pacchetti senza installarli/aggiornarli\n"
+
+#, c-format
+msgid ""
+" -y, --refresh download fresh package databases from the server\n"
+msgstr ""
+" -y, --refresh scarica dal server i database aggiornati dei "
+"pacchetti\n"
+
+#, c-format
+msgid " --needed don't reinstall up to date packages\n"
+msgstr " --needed non reinstalla i pacchetti aggiornati\n"
+
+#, c-format
+msgid " --asdeps mark packages as non-explicitly installed\n"
+msgstr ""
+" --asdeps marca i pacchetti come non esplicitamente installati\n"
+
+#, c-format
+msgid " --asexplicit mark packages as explicitly installed\n"
+msgstr ""
+" --asexplicit marca i pacchetti come esplicitamente installati\n"
+
+#, c-format
+msgid " -f, --force force install, overwrite conflicting files\n"
+msgstr ""
+" -f, --force forza l'installazione e sovrascrive i file in "
+"conflitto\n"
+
+#, c-format
+msgid " --asdeps install packages as non-explicitly installed\n"
+msgstr ""
+" --asdeps installa i pacchetti come non esplicitamente "
+"installati\n"
+
+#, c-format
+msgid " --asexplicit install packages as explicitly installed\n"
+msgstr ""
+" --asexplicit installa i pacchetti come esplicitamente installati\n"
+
+#, c-format
+msgid ""
+" --ignore <pkg> ignore a package upgrade (can be used more than "
+"once)\n"
+msgstr " --ignore <pkg> ignora l'aggiornamento di un pacchetto\n"
+
+#, c-format
+msgid ""
+" --ignoregroup <grp>\n"
+" ignore a group upgrade (can be used more than once)\n"
+msgstr ""
+" --ignoregroup <grp>\n"
+" ignora l'aggiornamento di un gruppo\n"
+
+#, c-format
+msgid ""
+" -d, --nodeps skip dependency version checks (-dd to skip all "
+"checks)\n"
+msgstr ""
+" -d, --nodeps salta il controllo sulle versioni delle dipendenze (-"
+"dd salta tutti i controlli)\n"
+
+#, c-format
+msgid ""
+" -k, --dbonly only modify database entries, not package files\n"
+msgstr ""
+" -k, --dbonly modifica solo le voci del database, non i file del "
+"pacchetto\n"
+
+#, c-format
+msgid ""
+" --noprogressbar do not show a progress bar when downloading files\n"
+msgstr " --noprogressbar non mostra la barra di avanzamento\n"
+
+#, c-format
+msgid ""
+" --noscriptlet do not execute the install scriptlet if one exists\n"
+msgstr " --noscriptlet non esegue un eventuale script di install\n"
+
+#, c-format
+msgid ""
+" --print print the targets instead of performing the "
+"operation\n"
+msgstr ""
+" --print visualizza i pacchetti senza effettuare operazioni\n"
+
+#, c-format
+msgid ""
+" --print-format <string>\n"
+" specify how the targets should be printed\n"
+msgstr ""
+" --print-format <string>\n"
+" specifica come i pacchetti dovrebbero essere "
+"elencati\n"
+
+#, c-format
+msgid " -b, --dbpath <path> set an alternate database location\n"
+msgstr ""
+" -b, --dbpath <path> imposta un percorso alternativo per il database\n"
+
+#, c-format
+msgid " -r, --root <path> set an alternate installation root\n"
+msgstr ""
+" -r, --root <path> imposta una root alternativa per l'installazione\n"
+
+#, c-format
+msgid " -v, --verbose be verbose\n"
+msgstr " -v, --verbose mostra maggiori informazioni\n"
+
+#, c-format
+msgid " --arch <arch> set an alternate architecture\n"
+msgstr " --arch <arch> imposta una architettura alternativa\n"
+
+#, c-format
+msgid " --cachedir <dir> set an alternate package cache location\n"
+msgstr " --cachedir <dir> imposta un percorso alternativo per la cache\n"
+
+#, c-format
+msgid " --config <path> set an alternate configuration file\n"
+msgstr " --config <path> imposta un file di configurazione alternativo\n"
+
+#, c-format
+msgid " --debug display debug messages\n"
+msgstr " --debug mostra i messaggi di debug\n"
+
+#, fuzzy, c-format
+msgid " --gpgdir <path> set an alternate home directory for GnuPG\n"
+msgstr " --logfile <path> imposta un file di log alternativo\n"
+
+#, c-format
+msgid " --logfile <path> set an alternate log file\n"
+msgstr " --logfile <path> imposta un file di log alternativo\n"
+
+#, c-format
+msgid " --noconfirm do not ask for any confirmation\n"
+msgstr " --noconfirm non chiede nessuna conferma\n"
+
+#, c-format
+msgid ""
+" This program may be freely redistributed under\n"
+" the terms of the GNU General Public License.\n"
+msgstr ""
+" Questo programma può essere liberamente "
+"ridistribuito\n"
+" sotto i termini della GNU General Public License.\n"
+
+#, c-format
+msgid "'%s' is not a valid debug level\n"
+msgstr "'%s' non è un livello di debug valido\n"
+
+#, c-format
+msgid "only one operation may be used at a time\n"
+msgstr "è consentito eseguire solo un'operazione per volta\n"
+
+#, c-format
+msgid "invalid option\n"
+msgstr "opzione non valida\n"
+
+#, c-format
+msgid "buffer overflow detected in arg parsing\n"
+msgstr ""
+"è stato individuato un buffer overflow durante l'analisi dell'argomento\n"
+
+#, c-format
+msgid "failed to reopen stdin for reading: (%s)\n"
+msgstr "impossibile riaprire stdin in lettura: (%s)\n"
+
+#, c-format
+msgid "you cannot perform this operation unless you are root.\n"
+msgstr "questa operazione è possibile solo da root.\n"
+
+#, c-format
+msgid "no operation specified (use -h for help)\n"
+msgstr "nessuna operazione specificata (usa -h per un aiuto)\n"
+
+#, c-format
+msgid "%s is owned by %s %s\n"
+msgstr "%s è contenuto in %s %s\n"
+
+#, c-format
+msgid "no file was specified for --owns\n"
+msgstr "non è stato specificato nessun file per --owns\n"
+
+#, c-format
+msgid "failed to find '%s' in PATH: %s\n"
+msgstr "impossibile trovare '%s' nel PATH: %s\n"
+
+#, c-format
+msgid "failed to read file '%s': %s\n"
+msgstr "impossibile leggere il file '%s': %s\n"
+
+#, c-format
+msgid "cannot determine ownership of directory '%s'\n"
+msgstr "impossibile determinare il proprietario della directory '%s'\n"
+
+#, c-format
+msgid "cannot determine real path for '%s': %s\n"
+msgstr "impossibile determinare il percorso reale di '%s': %s\n"
+
+#, c-format
+msgid "path too long: %s%s\n"
+msgstr "il path è troppo lungo: %s%s\n"
+
+#, c-format
+msgid "No package owns %s\n"
+msgstr "Nessun pacchetto contiene %s\n"
+
+#, c-format
+msgid "group \"%s\" was not found\n"
+msgstr "il gruppo \"%s\" non è stato trovato\n"
+
+#, c-format
+msgid "%s: %d total file, "
+msgid_plural "%s: %d total files, "
+msgstr[0] "%s: %d file totale, "
+msgstr[1] "%s: %d file totali, "
+
+#, c-format
+msgid "%d missing file\n"
+msgid_plural "%d missing files\n"
+msgstr[0] "%d file mancante\n"
+msgstr[1] "%d file mancanti\n"
+
+#, c-format
+msgid "no usable package repositories configured.\n"
+msgstr "non è stato configurato nessun repository di pacchetti valido.\n"
+
+#, c-format
+msgid "package \"%s\" not found\n"
+msgstr "il pacchetto \"%s\" non è stato trovato\n"
+
+#, c-format
+msgid "failed to prepare transaction (%s)\n"
+msgstr "impossibile eseguire l'operazione richiesta (%s)\n"
+
+#, c-format
+msgid ":: package %s does not have a valid architecture\n"
+msgstr ":: il pacchetto %s non presenta una architettura valida\n"
+
+#, c-format
+msgid ":: %s: requires %s\n"
+msgstr ":: %s: richiede %s\n"
+
+#, c-format
+msgid "%s is designated as a HoldPkg.\n"
+msgstr "%s è presente in HoldPkg.\n"
+
+#, c-format
+msgid "HoldPkg was found in target list. Do you want to continue?"
+msgstr "È stato trovato HoldPkg nella lista dei pacchetti. Vuoi continuare?"
+
+#, c-format
+msgid " there is nothing to do\n"
+msgstr " non ci sono aggiornamenti disponibili\n"
+
+#, c-format
+msgid "Do you want to remove these packages?"
+msgstr "Vuoi rimuovere questi pacchetti?"
+
+#, c-format
+msgid "failed to commit transaction (%s)\n"
+msgstr "impossibile eseguire l'operazione richiesta (%s)\n"
+
+#, c-format
+msgid "could not access database directory\n"
+msgstr "impossibile accedere alla directory del database\n"
+
+#, c-format
+msgid "could not remove %s\n"
+msgstr "impossibile rimuovere %s\n"
+
+#, c-format
+msgid "Do you want to remove %s?"
+msgstr "Vuoi rimuovere %s?"
+
+#, c-format
+msgid "Database directory: %s\n"
+msgstr "Directory del database: %s\n"
+
+#, c-format
+msgid "Do you want to remove unused repositories?"
+msgstr "Vuoi rimuovere i repository inutilizzati?"
+
+#, c-format
+msgid "Database directory cleaned up\n"
+msgstr "Directory del database pulita\n"
+
+#, c-format
+msgid "Cache directory: %s\n"
+msgstr "Directory della cache: %s\n"
+
+#, c-format
+msgid "Packages to keep:\n"
+msgstr "Pacchetti da mantenere:\n"
+
+#, c-format
+msgid " All locally installed packages\n"
+msgstr "Tutti i pacchetti installati localmente\n"
+
+#, c-format
+msgid " All current sync database packages\n"
+msgstr "Tutti i pacchetti dell'attuale database sincronizzato\n"
+
+#, c-format
+msgid "Do you want to remove all other packages from cache?"
+msgstr "Vuoi rimuovere tutti gli altri pacchetti dalla cache?"
+
+#, c-format
+msgid "removing old packages from cache...\n"
+msgstr "rimozione dei vecchi pacchetti dalla cache in corso...\n"
+
+#, c-format
+msgid "Do you want to remove ALL files from cache?"
+msgstr "Vuoi rimuovere TUTTI i file dalla cache?"
+
+#, c-format
+msgid "removing all files from cache...\n"
+msgstr "rimozione di tutti i file dalla cache in corso...\n"
+
+#, c-format
+msgid "could not access cache directory %s\n"
+msgstr "impossibile accedere alla directory %s della cache\n"
+
+#, c-format
+msgid "File %s does not seem to be a valid package, remove it?"
+msgstr "Il file %s non sembra un pacchetto valido, vuoi rimuoverlo?"
+
+#, c-format
+msgid "failed to update %s (%s)\n"
+msgstr "impossibile aggiornare %s (%s)\n"
+
+#, c-format
+msgid " %s is up to date\n"
+msgstr " %s è aggiornato\n"
+
+#, c-format
+msgid "failed to synchronize any databases\n"
+msgstr "impossibile sincronizzare i database\n"
+
+#, c-format
+msgid "installed"
+msgstr "installato"
+
+#, c-format
+msgid "repository '%s' does not exist\n"
+msgstr "il repository '%s' non esiste\n"
+
+#, c-format
+msgid "package '%s' was not found in repository '%s'\n"
+msgstr "impossibile trovare il pacchetto '%s' nel repository '%s'\n"
+
+#, c-format
+msgid "package '%s' was not found\n"
+msgstr "impossibile trovare il pacchetto '%s'\n"
+
+#, c-format
+msgid "repository \"%s\" was not found.\n"
+msgstr "impossibile trovare il repository \"%s\".\n"
+
+#, c-format
+msgid "skipping target: %s\n"
+msgstr "sto ignorando il pacchetto: %s\n"
+
+#, c-format
+msgid "target not found: %s\n"
+msgstr "il seguente pacchetto non è stato trovato: %s\n"
+
+#, c-format
+msgid ":: There are %d members in group %s:\n"
+msgstr ":: Ci sono %d membri nel gruppo %s:\n"
+
+#, c-format
+msgid "database not found: %s\n"
+msgstr "il seguente database non è stato trovato: %s\n"
+
+#, c-format
+msgid ":: Starting full system upgrade...\n"
+msgstr ":: Aggiornamento del sistema in corso...\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict\n"
+msgstr ":: %s e %s vanno in conflitto\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s)\n"
+msgstr ":: %s e %s vanno in conflitto (%s)\n"
+
+#, c-format
+msgid "Proceed with download?"
+msgstr "Vuoi procedere con il download?"
+
+#, c-format
+msgid "Proceed with installation?"
+msgstr "Vuoi procedere con l'installazione?"
+
+#, c-format
+msgid "%s exists in both '%s' and '%s'\n"
+msgstr "%s è già presente in '%s' e in '%s'\n"
+
+#, c-format
+msgid "%s: %s exists in filesystem\n"
+msgstr "%s: %s è già presente nel filesystem\n"
+
+#, c-format
+msgid "%s is invalid or corrupted\n"
+msgstr "%s non è valido oppure è corrotto\n"
+
+#, c-format
+msgid "Errors occurred, no packages were upgraded.\n"
+msgstr ""
+"Si sono verificati degli errori, nessun pacchetto è stato aggiornato.\n"
+
+#, c-format
+msgid ":: Synchronizing package databases...\n"
+msgstr ":: Sincronizzazione dei database in corso...\n"
+
+#, c-format
+msgid ":: The following packages should be upgraded first :\n"
+msgstr ":: I seguenti pacchetti dovrebbero essere aggiornati prima :\n"
+
+#, c-format
+msgid ""
+":: Do you want to cancel the current operation\n"
+":: and upgrade these packages now?"
+msgstr ""
+":: Vuoi annullare l'operazione corrente\n"
+":: e aggiornare adesso questi pacchetti?"
+
+#, c-format
+msgid "failed to init transaction (%s)\n"
+msgstr "inizializzazione non riuscita (%s)\n"
+
+#, c-format
+msgid ""
+" if you're sure a package manager is not already\n"
+" running, you can remove %s\n"
+msgstr ""
+" se sei sicuro che il gestore dei pacchetti non sia già\n"
+" in funzione, puoi rimuovere %s.\n"
+
+#, c-format
+msgid " try running pacman-db-upgrade\n"
+msgstr " prova ad avviare pacman-db-upgrade\n"
+
+#, c-format
+msgid "failed to release transaction (%s)\n"
+msgstr "impossibile annullare l'operazione richiesta (%s)\n"
+
+#, c-format
+msgid "None"
+msgstr "Nessuno"
+
+#, c-format
+msgid "insufficient columns available for table display\n"
+msgstr ""
+
+#, c-format
+msgid "Name"
+msgstr ""
+
+#, c-format
+msgid "Old Version"
+msgstr ""
+
+#, c-format
+msgid "New Version"
+msgstr ""
+
+#, c-format
+msgid "Size"
+msgstr ""
+
+#, c-format
+msgid "Targets (%d):"
+msgstr "Pacchetti (%d):"
+
+#, c-format
+msgid "Remove (%d):"
+msgstr "Da rimuovere (%d):"
+
+#, fuzzy, c-format
+msgid "Total Download Size: %.2f %s\n"
+msgstr "Dimensione totale dei pacchetti da scaricare: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Installed Size: %.2f %s\n"
+msgstr "Dimensione totale dei pacchetti da installare: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Net Upgrade Size: %.2f %s\n"
+msgstr "Dimensione totale dei pacchetti da scaricare: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Removed Size: %.2f %s\n"
+msgstr "Dimensione totale dei pacchetti da rimuovere: %.2f MB\n"
+
+#, c-format
+msgid "New optional dependencies for %s\n"
+msgstr "Nuove dipendenze opzionali di %s\n"
+
+#, c-format
+msgid "Optional dependencies for %s\n"
+msgstr "Dipendenze opzionali di %s\n"
+
+#, c-format
+msgid "Repository %s\n"
+msgstr "Repository %s\n"
+
+#, c-format
+msgid "Invalid value: %d is not between %d and %d\n"
+msgstr "Valore non valido: %d non è compreso tra %d e %d\n"
+
+#, c-format
+msgid "Invalid number: %s\n"
+msgstr "Numero non valido: %s\n"
+
+#, c-format
+msgid "Enter a selection (default=all)"
+msgstr "Digita una selezione (default=tutto)"
+
+#, c-format
+msgid "Enter a number (default=%d)"
+msgstr "Digita un numero (default=%d)"
+
+#, c-format
+msgid "[Y/n]"
+msgstr "[S/n]"
+
+#, c-format
+msgid "[y/N]"
+msgstr "[s/N]"
+
+#, c-format
+msgid "Y"
+msgstr "S"
+
+#, c-format
+msgid "YES"
+msgstr "SI"
+
+#, c-format
+msgid "N"
+msgstr "N"
+
+#, c-format
+msgid "NO"
+msgstr "NO"
+
+#, c-format
+msgid "failed to allocate string\n"
+msgstr "impossibile allocare la stringa\n"
+
+#, c-format
+msgid "error: %s"
+msgstr "errore: %s"
+
+#, c-format
+msgid "warning: %s"
+msgstr "attenzione: %s"
+
+#, c-format
+msgid "error: "
+msgstr "errore: "
+
+#, c-format
+msgid "warning: "
+msgstr "attenzione: "
+
diff --git a/src/pacman/po/kk.po b/src/pacman/po/kk.po
new file mode 100644
index 00000000..adde2d0c
--- /dev/null
+++ b/src/pacman/po/kk.po
@@ -0,0 +1,1118 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Pacman Development Team <pacman-dev@archlinux.org>
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Arch Linux Pacman package manager\n"
+"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
+"POT-Creation-Date: 2011-06-23 21:59-0500\n"
+"PO-Revision-Date: 2011-03-28 02:39+0000\n"
+"Last-Translator: toofishes <dpmcgee@gmail.com>\n"
+"Language-Team: Kazakh <None>\n"
+"Language: kk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0\n"
+
+#, c-format
+msgid "checking dependencies...\n"
+msgstr "тәуелділіктер тексерілуде...\n"
+
+#, c-format
+msgid "checking for file conflicts...\n"
+msgstr "файлдар ерегістері тексерілуде...\n"
+
+#, c-format
+msgid "resolving dependencies...\n"
+msgstr "тәуелділіктер шешілуде...\n"
+
+#, c-format
+msgid "looking for inter-conflicts...\n"
+msgstr "дестелер арасындағы ерегістерін тексеру...\n"
+
+#, c-format
+msgid "installing %s...\n"
+msgstr "%s орнатылуда...\n"
+
+#, c-format
+msgid "removing %s...\n"
+msgstr "%s өшірілуде...\n"
+
+#, c-format
+msgid "upgrading %s...\n"
+msgstr "%s жаңартылуда...\n"
+
+#, c-format
+msgid "checking package integrity...\n"
+msgstr "дестенің бүтіндігі тексерілуде...\n"
+
+#, c-format
+msgid "checking delta integrity...\n"
+msgstr "дельта бүтіндігі тексерілуде...\n"
+
+#, c-format
+msgid "applying deltas...\n"
+msgstr "дельталар іске асырылуда...\n"
+
+#, c-format
+msgid "generating %s with %s... "
+msgstr "%s құрылуда %s көмегімен..."
+
+#, c-format
+msgid "success!\n"
+msgstr "сәтті аяқталды!\n"
+
+#, c-format
+msgid "failed.\n"
+msgstr "қатемен аяқталды.\n"
+
+#, c-format
+msgid ":: Retrieving packages from %s...\n"
+msgstr ":: Дестелер %s серверінен алынуда...\n"
+
+#, c-format
+msgid "checking available disk space...\n"
+msgstr "дискідегі қолжетерлік бос орынды тексеру...\n"
+
+#, c-format
+msgid ":: %s is in IgnorePkg/IgnoreGroup. Install anyway?"
+msgstr ":: %s қазір IgnorePkg ішінде көрсетілген. Сонда да орнату керек пе?"
+
+#, c-format
+msgid ":: Replace %s with %s/%s?"
+msgstr ":: %s нұсқасын %s/%s нұсқасымен алмастыруды қалайсыз ба?"
+
+#, c-format
+msgid ":: %s and %s are in conflict. Remove %s?"
+msgstr ":: %s және %s өзара ерегіседі. %s өшіруді қалайсыз ба?"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s). Remove %s?"
+msgstr ":: %s және %s өзара ерегіседі (%s). %s өшіруді қалайсыз ба?"
+
+#, c-format
+msgid ""
+":: The following package cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgid_plural ""
+":: The following packages cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgstr[0] ""
+":: Келесі десте(лер) шешілмейтін тәуелділіктер салдарынан жаңарту мүмкін "
+"емес:\n"
+
+#, c-format
+msgid "Do you want to skip the above package for this upgrade?"
+msgid_plural "Do you want to skip the above packages for this upgrade?"
+msgstr[0] "Бұл жаңарту үшін жоғарыдағы десте(лер) елемеуді қалайсыз ба?"
+
+#, c-format
+msgid ":: There are %d providers available for %s:\n"
+msgstr ":: %d ұсынушы бар, %s үшін:\n"
+
+#, c-format
+msgid ":: %s-%s: local version is newer. Upgrade anyway?"
+msgstr ""
+":: %s-%s: орнатылған нұсқасы жаңалау болып тұр. Сонда да жаңартуды қалайсыз "
+"ба?"
+
+#, c-format
+msgid ":: File %s is corrupted. Do you want to delete it?"
+msgstr ":: %s файлы зақымдалған. Оны өшіруді қалайсыз ба?"
+
+#, c-format
+msgid "installing"
+msgstr "орнатылуда"
+
+#, c-format
+msgid "upgrading"
+msgstr "жаңартылуда"
+
+#, c-format
+msgid "removing"
+msgstr "өшірілуде"
+
+#, c-format
+msgid "checking for file conflicts"
+msgstr "файл ерегістерін тексеру"
+
+#, c-format
+msgid "checking available disk space"
+msgstr "дискідегі қолжетерлік бос орынды тексеру"
+
+#, c-format
+msgid "checking package integrity"
+msgstr "десте бүтіндігін тексеру"
+
+#, c-format
+msgid "downloading %s...\n"
+msgstr "%s жүктелуде...\n"
+
+#, c-format
+msgid "malloc failure: could not allocate %zd bytes\n"
+msgstr "malloc қатесі: %zd байт орынды бөлу мүмкін емес\n"
+
+#, c-format
+msgid "could not get current working directory\n"
+msgstr "ағымдағы жұмыс бумасын алу мүмкін емес\n"
+
+#, c-format
+msgid "could not chdir to download directory %s\n"
+msgstr "%s жүктеме бумасына өту мүмкін емес\n"
+
+#, c-format
+msgid "running XferCommand: fork failed!\n"
+msgstr "XferCommand орындау: үрдісті жасау сәтсіз аяқталды!\n"
+
+#, c-format
+msgid "could not change directory to %s (%s)\n"
+msgstr "%s бумасына өту мүмкін емес (%s)\n"
+
+#, c-format
+msgid "invalid value for 'CleanMethod' : '%s'\n"
+msgstr "'CleanMethod' үшін мәні қате : '%s'\n"
+
+#, c-format
+msgid ""
+"config file %s, line %d: directive '%s' in section '%s' not recognized.\n"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "config file %s, line %d: directive '%s' has invalid value '%s'\n"
+msgstr ""
+"баптаулар файлы %s, жол %d: бар директивалар секциялардың ішінде болуы "
+"керек.\n"
+
+#, c-format
+msgid ""
+"The mirror '%s' contains the $arch variable, but no Architecture is "
+"defined.\n"
+msgstr ""
+"'%s' желілік айнасында $arch айнымалысы бар, бірақ Architecture "
+"анықталмаған.\n"
+
+#, c-format
+msgid "could not add server URL to database '%s': %s (%s)\n"
+msgstr "'%s' дерекқорына сервер адресін қосу мүмкін емес: %s (%s)\n"
+
+#, c-format
+msgid "failed to initialize alpm library (%s)\n"
+msgstr "alpm жинағын іске қосу мүмкін емес (%s)\n"
+
+#, c-format
+msgid "problem setting logfile '%s' (%s)\n"
+msgstr "'%s' лог-файлын қолдану қатесі (%s)\n"
+
+#, fuzzy, c-format
+msgid "problem setting gpgdir '%s' (%s)\n"
+msgstr "'%s' түбірлік буманы орнатуда қате кетті (%s)\n"
+
+#, c-format
+msgid "could not register '%s' database (%s)\n"
+msgstr "'%s' (%s) дерекқорын тіркеу мүмкін емес\n"
+
+#, fuzzy, c-format
+msgid "could not set verify option for database '%s' (%s)\n"
+msgstr "'%s' дерекқорына сервер адресін қосу мүмкін емес: %s (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not add mirror '%s' to database '%s' (%s)\n"
+msgstr "'%s' дерекқорына сервер адресін қосу мүмкін емес: %s (%s)\n"
+
+#, c-format
+msgid "config parsing exceeded max recursion depth of %d.\n"
+msgstr ""
+
+#, c-format
+msgid "config file %s could not be read.\n"
+msgstr "%s баптаулар файлын оқу мүмкін емес.\n"
+
+#, c-format
+msgid "config file %s, line %d: bad section name.\n"
+msgstr "баптаулар файлы %s, жол %d: секцияның аты қате.\n"
+
+#, c-format
+msgid "config file %s, line %d: syntax error in config file- missing key.\n"
+msgstr "баптаулар файлы %s, жол %d: синтаксис қатесі - кілт жоқ.\n"
+
+#, c-format
+msgid "config file %s, line %d: All directives must belong to a section.\n"
+msgstr ""
+"баптаулар файлы %s, жол %d: бар директивалар секциялардың ішінде болуы "
+"керек.\n"
+
+#, c-format
+msgid "config file %s, line %d: directive '%s' needs a value\n"
+msgstr ""
+
+#, c-format
+msgid "no targets specified (use -h for help)\n"
+msgstr "мақсаттар көрсетілмеді (көмек үшін -h қолданыңыз)\n"
+
+#, c-format
+msgid "no install reason specified (use -h for help)\n"
+msgstr "орнату себебі көрсетілмеді (көмек үшін -h қараңыз)\n"
+
+#, c-format
+msgid "could not set install reason for package %s (%s)\n"
+msgstr "%s дестесі үшін орнату себебін көрсету мүмкін емес (%s)\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'installed as dependency'\n"
+msgstr "%s: орнату себебі 'тәуелділік ретінде орнатылған' етіп көрсетілді\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'explicitly installed'\n"
+msgstr "%s: орнату себебі 'нақты орнатылған' етіп көрсетілді\n"
+
+#, c-format
+msgid "Explicitly installed"
+msgstr "Нақты орнатылған"
+
+#, c-format
+msgid "Installed as a dependency for another package"
+msgstr "Басқа дестенің тәуелділігі ретінде орнатылған"
+
+#, c-format
+msgid "Unknown"
+msgstr "Белгісіз"
+
+#, c-format
+msgid "Repository :"
+msgstr "Репозиторийі :"
+
+#, c-format
+msgid "Name :"
+msgstr "Аты :"
+
+#, c-format
+msgid "Version :"
+msgstr "Нұсқасы :"
+
+#, c-format
+msgid "URL :"
+msgstr "URL :"
+
+#, c-format
+msgid "Licenses :"
+msgstr "Лицензиясы :"
+
+#, c-format
+msgid "Groups :"
+msgstr "Топтар :"
+
+#, c-format
+msgid "Provides :"
+msgstr "Ұсынады :"
+
+#, c-format
+msgid "Depends On :"
+msgstr "Тәуелді :"
+
+#, c-format
+msgid "Optional Deps :"
+msgstr "Қосымша тәуелділіктер :"
+
+#, c-format
+msgid "Required By :"
+msgstr "Осыны талап ететіндер :"
+
+#, c-format
+msgid "Conflicts With :"
+msgstr "Ерегіседі :"
+
+#, c-format
+msgid "Replaces :"
+msgstr "Алмастырады :"
+
+#, fuzzy, c-format
+msgid "Download Size : %6.2f %s\n"
+msgstr "Жүктелетін көлем : %6.2f Kб\n"
+
+#, fuzzy, c-format
+msgid "Compressed Size: %6.2f %s\n"
+msgstr "Сығылған көлемі : %6.2f Kб\n"
+
+#, fuzzy, c-format
+msgid "Installed Size : %6.2f %s\n"
+msgstr "Орнатылған көлемі : %6.2f Kб\n"
+
+#, c-format
+msgid "Packager :"
+msgstr "Дестені жинаған :"
+
+#, c-format
+msgid "Architecture :"
+msgstr "Архитектурасы :"
+
+#, c-format
+msgid "Build Date :"
+msgstr "Жиналған күні :"
+
+#, c-format
+msgid "Install Date :"
+msgstr "Орнатылған күні :"
+
+#, c-format
+msgid "Install Reason :"
+msgstr "Орнату себебі :"
+
+#, c-format
+msgid "Install Script :"
+msgstr "Орнату скрипті :"
+
+#, c-format
+msgid "Yes"
+msgstr "Бар"
+
+#, c-format
+msgid "No"
+msgstr "Жоқ"
+
+#, c-format
+msgid "MD5 Sum :"
+msgstr "MD5 сомасы :"
+
+#, c-format
+msgid "Description :"
+msgstr "Анықтамасы :"
+
+#, c-format
+msgid "could not calculate checksums for %s\n"
+msgstr "%s үшін тексеру сомаларын есептеу мүмкін емес\n"
+
+#, c-format
+msgid "Backup Files:\n"
+msgstr "Резервті файлдар :\n"
+
+#, c-format
+msgid "(none)\n"
+msgstr "(бос)\n"
+
+#, c-format
+msgid "no changelog available for '%s'.\n"
+msgstr "'%s' үшін өзгерістер тарихы жоқ.\n"
+
+#, c-format
+msgid "options"
+msgstr "опциялар"
+
+#, c-format
+msgid "file(s)"
+msgstr "файл(дар)"
+
+#, c-format
+msgid "package(s)"
+msgstr "десте(лер)"
+
+#, c-format
+msgid "usage"
+msgstr "қолданылуы"
+
+#, c-format
+msgid "operation"
+msgstr "әрекет"
+
+#, c-format
+msgid "operations:\n"
+msgstr "әрекеттер:\n"
+
+#, c-format
+msgid ""
+"\n"
+"use '%s {-h --help}' with an operation for available options\n"
+msgstr ""
+"\n"
+"опцияларды қарап шығу үшін '%s { -h --help}' басқа әрекеттермен бірге "
+"қолданыңыз\n"
+
+#, c-format
+msgid ""
+" -c, --cascade remove packages and all packages that depend on them\n"
+msgstr ""
+" -c, --cascade дестені мен оған тәуелді болып тұрған дестелерді "
+"өшіру\n"
+
+#, c-format
+msgid " -n, --nosave remove configuration files\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -s, --recursive remove unnecessary dependencies\n"
+" (-ss includes explicitly installed dependencies)\n"
+msgstr ""
+
+#, c-format
+msgid " -u, --unneeded remove unneeded packages\n"
+msgstr ""
+
+#, c-format
+msgid " -c, --changelog view the changelog of a package\n"
+msgstr " -c, --changelog дестенің өзгерістер тарихын көрсету\n"
+
+#, c-format
+msgid ""
+" -d, --deps list packages installed as dependencies [filter]\n"
+msgstr ""
+" -d, --deps тәуелділік ретінде орнатылған барлық дестелер тізімін "
+"шығару [фильтр]\n"
+
+#, c-format
+msgid " -e, --explicit list packages explicitly installed [filter]\n"
+msgstr ""
+" -e, --explicit нақты орнатылған барлық дестелер тізімін шығару "
+"[фильтр]\n"
+
+#, c-format
+msgid " -g, --groups view all members of a package group\n"
+msgstr " -g, --groups бұл топтағы барлық дестелер тізімін шығару\n"
+
+#, c-format
+msgid ""
+" -i, --info view package information (-ii for backup files)\n"
+msgstr ""
+" -i, --info десте ақпаратын шығару (-ii резервті көшірмелері "
+"үшін)\n"
+
+#, c-format
+msgid ""
+" -k, --check check that the files owned by the package(s) are "
+"present\n"
+msgstr " -k, --check дестеге қатысты файлдардың бар-жоғын тексеру\n"
+
+#, c-format
+msgid " -l, --list list the contents of the queried package\n"
+msgstr " -l, --list сұралған дестенің құрамасын тізіп шығару\n"
+
+#, c-format
+msgid ""
+" -m, --foreign list installed packages not found in sync db(s) "
+"[filter]\n"
+msgstr ""
+" -m, --foreign дерекқор(лар)дан табылмаған барлық дестелер тізімін "
+"шығару [фильтр]\n"
+
+#, c-format
+msgid " -o, --owns <file> query the package that owns <file>\n"
+msgstr " -o, --owns <файл> құрамында <файл> бар дестені табу\n"
+
+#, c-format
+msgid " -p, --file <package> query a package file instead of the database\n"
+msgstr ""
+" -p, --file <десте> ақпаратты десте файлынан алу, дерекқордан емес\n"
+
+#, c-format
+msgid " -q, --quiet show less information for query and search\n"
+msgstr ""
+" -q, --quiet сұранымдар мен іздеу кезінде аздау ақпаратты көрсету\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search locally-installed packages for matching "
+"strings\n"
+msgstr ""
+" -s, --search <regex> көрсетілген мәтінді жергілікті орнатылған дестелер "
+"ішінен іздеу\n"
+
+#, c-format
+msgid ""
+" -t, --unrequired list packages not required by any package [filter]\n"
+msgstr ""
+" -t, --unrequired ешбір десте керек етпейтін барлық дестелер тізімін "
+"шығару [фильтр]\n"
+
+#, c-format
+msgid " -u, --upgrades list outdated packages [filter]\n"
+msgstr " -u, --upgrades ескірген дестелер тізімін шығару [фильтр]\n"
+
+#, c-format
+msgid ""
+" -c, --clean remove old packages from cache directory (-cc for "
+"all)\n"
+msgstr ""
+" -c, --clean кэштен ескі дестелерді өшіру (-cc барлығы үшін)\n"
+
+#, c-format
+msgid " -i, --info view package information\n"
+msgstr " -i, --info десте ақпаратын қарау\n"
+
+#, c-format
+msgid " -l, --list <repo> view a list of packages in a repo\n"
+msgstr ""
+" -l, --list <repo> бұл репозиторийде бар барлық дестелер тізімін шығару\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search remote repositories for matching strings\n"
+msgstr ""
+" -s, --search <regex> қашықтағы репозиторийлардың ішінен көрсетілген "
+"мәтінді іздеу\n"
+
+#, c-format
+msgid ""
+" -u, --sysupgrade upgrade installed packages (-uu allows downgrade)\n"
+msgstr ""
+" -u, --sysupgrade орнатылған дестелерді жаңарту (-uu нұсқасын төмендету "
+"үшін)\n"
+
+#, c-format
+msgid ""
+" -w, --downloadonly download packages but do not install/upgrade "
+"anything\n"
+msgstr ""
+" -w, --downloadonly дестелерді серверден жүктеп алу, бірақ орнатпау\n"
+
+#, c-format
+msgid ""
+" -y, --refresh download fresh package databases from the server\n"
+msgstr ""
+" -y, --refresh дестелердің жаңа дерекқорларын серверден жүктеп алу\n"
+
+#, c-format
+msgid " --needed don't reinstall up to date packages\n"
+msgstr " --needed ескірмеген дестелерге тиіспеу\n"
+
+#, c-format
+msgid " --asdeps mark packages as non-explicitly installed\n"
+msgstr " --asdeps дестелерді нақты орнатылған емес қылып орнату\n"
+
+#, c-format
+msgid " --asexplicit mark packages as explicitly installed\n"
+msgstr " --asexplicit дестелерді нақты орнатылған қылып орнату\n"
+
+#, c-format
+msgid " -f, --force force install, overwrite conflicting files\n"
+msgstr ""
+" -f, --force мәжбүрлі орнату, ерегісетін файлдар алмастырылады\n"
+
+#, c-format
+msgid " --asdeps install packages as non-explicitly installed\n"
+msgstr " --asdeps дестелерді нақты емес орнатылған қылып орнату\n"
+
+#, c-format
+msgid " --asexplicit install packages as explicitly installed\n"
+msgstr " --asexplicit дестелерді нақты орнатылған қылып орнату\n"
+
+#, c-format
+msgid ""
+" --ignore <pkg> ignore a package upgrade (can be used more than "
+"once)\n"
+msgstr ""
+" --ignore <десте> жаңарту кезінде дестені елемеу (бірнеше рет "
+"қолданылуы мүмкін)\n"
+
+#, c-format
+msgid ""
+" --ignoregroup <grp>\n"
+" ignore a group upgrade (can be used more than once)\n"
+msgstr ""
+" --ignoregroup <топ>\n"
+" жаңарту кезінде топты елемеу (бірнеше рет қолданылуы мүмкін)\n"
+
+#, c-format
+msgid ""
+" -d, --nodeps skip dependency version checks (-dd to skip all "
+"checks)\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -k, --dbonly only modify database entries, not package files\n"
+msgstr ""
+" -k, --dbonly тек дерекқор жазбаларны жаңарту, дестелерге тиіспеу\n"
+
+#, c-format
+msgid ""
+" --noprogressbar do not show a progress bar when downloading files\n"
+msgstr ""
+" --noprogressbar файлдарды жүктеу кезінде үрдіс жолағын көрсетпеу\n"
+
+#, c-format
+msgid ""
+" --noscriptlet do not execute the install scriptlet if one exists\n"
+msgstr " --noscriptlet орнату скриптері бар болса, оларды орындамау\n"
+
+#, c-format
+msgid ""
+" --print print the targets instead of performing the "
+"operation\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" --print-format <string>\n"
+" specify how the targets should be printed\n"
+msgstr ""
+" --print-format <string>\n"
+" мақсаттар қалай шығарылатынын көрсетеді\n"
+
+#, c-format
+msgid " -b, --dbpath <path> set an alternate database location\n"
+msgstr " -b, --dbpath <жолы> басқа дерекқорды қолдану\n"
+
+#, c-format
+msgid " -r, --root <path> set an alternate installation root\n"
+msgstr " -r, --root <жолы> басқа түбірлік буманы көрсету\n"
+
+#, c-format
+msgid " -v, --verbose be verbose\n"
+msgstr " -v, --verbose көбірек ақпаратты шығару\n"
+
+#, c-format
+msgid " --arch <arch> set an alternate architecture\n"
+msgstr " --arch <arch> басқа архитектураны орнату\n"
+
+#, c-format
+msgid " --cachedir <dir> set an alternate package cache location\n"
+msgstr " --cachedir <бума> басқа кэш бумасын қолдану\n"
+
+#, c-format
+msgid " --config <path> set an alternate configuration file\n"
+msgstr " --config <жолы> басқа баптаулар файлын қолдану\n"
+
+#, c-format
+msgid " --debug display debug messages\n"
+msgstr " --debug жөндеу хабарламаларын көрсету\n"
+
+#, fuzzy, c-format
+msgid " --gpgdir <path> set an alternate home directory for GnuPG\n"
+msgstr " --logfile <жолы> басқа лог файлын қолдану\n"
+
+#, c-format
+msgid " --logfile <path> set an alternate log file\n"
+msgstr " --logfile <жолы> басқа лог файлын қолдану\n"
+
+#, c-format
+msgid " --noconfirm do not ask for any confirmation\n"
+msgstr " --noconfirm растауды сұрамау\n"
+
+#, c-format
+msgid ""
+" This program may be freely redistributed under\n"
+" the terms of the GNU General Public License.\n"
+msgstr ""
+" Бұл бағдарлама GNU General Public License\n"
+" аясында еркін таратылуы мүмкін.\n"
+
+#, c-format
+msgid "'%s' is not a valid debug level\n"
+msgstr "'%s' - жөндеудің қате деңгейі\n"
+
+#, c-format
+msgid "only one operation may be used at a time\n"
+msgstr "бір уақытта тек бір әрекет орындалуы мүмкін\n"
+
+#, c-format
+msgid "invalid option\n"
+msgstr "опция қате\n"
+
+#, c-format
+msgid "buffer overflow detected in arg parsing\n"
+msgstr "аргументтерді талдауда буферден шығып кету табылды\n"
+
+#, c-format
+msgid "failed to reopen stdin for reading: (%s)\n"
+msgstr "оқу үшін stdin қайта ашу сәтсіз: (%s)\n"
+
+#, c-format
+msgid "you cannot perform this operation unless you are root.\n"
+msgstr "Бұл әрекетті жасай алмайсыз, өйткені сіз әкімші емессіз (root).\n"
+
+#, c-format
+msgid "no operation specified (use -h for help)\n"
+msgstr "әрекет көрсетілмеді (көмек үшін -h қолданыңыз)\n"
+
+#, c-format
+msgid "%s is owned by %s %s\n"
+msgstr "%s қазір %s %s иелігінде\n"
+
+#, c-format
+msgid "no file was specified for --owns\n"
+msgstr "--owns үшін файл көрсетілмеді\n"
+
+#, c-format
+msgid "failed to find '%s' in PATH: %s\n"
+msgstr "'%s' нәрсесі PATH жерінен табылмады: %s\n"
+
+#, c-format
+msgid "failed to read file '%s': %s\n"
+msgstr "'%s' файлын оқу мүмкін емес: %s\n"
+
+#, c-format
+msgid "cannot determine ownership of directory '%s'\n"
+msgstr "'%s' бумасының иесін анықтау мүмкін емес\n"
+
+#, c-format
+msgid "cannot determine real path for '%s': %s\n"
+msgstr "'%s' үшін шын жолды анықтау мүмкін емес: %s\n"
+
+#, c-format
+msgid "path too long: %s%s\n"
+msgstr "жол тым ұзын: %s%s\n"
+
+#, c-format
+msgid "No package owns %s\n"
+msgstr "Бірде-бір десте құрамында %s жоқ\n"
+
+#, c-format
+msgid "group \"%s\" was not found\n"
+msgstr "\"%s\" тобы табылмады\n"
+
+#, c-format
+msgid "%s: %d total file, "
+msgid_plural "%s: %d total files, "
+msgstr[0] "%s: барлығы %d файл, "
+
+#, c-format
+msgid "%d missing file\n"
+msgid_plural "%d missing files\n"
+msgstr[0] "%d файл жоқ\n"
+
+#, c-format
+msgid "no usable package repositories configured.\n"
+msgstr "бірде-бір репозиторий тиісті түрде бапталмаған.\n"
+
+#, c-format
+msgid "package \"%s\" not found\n"
+msgstr "\"%s\" дестесі табылмады\n"
+
+#, c-format
+msgid "failed to prepare transaction (%s)\n"
+msgstr "әрекетті дайындау қатемен аяқталды (%s)\n"
+
+#, c-format
+msgid ":: package %s does not have a valid architecture\n"
+msgstr ":: %s дестесінде дұрыс архитектура жоқ\n"
+
+#, c-format
+msgid ":: %s: requires %s\n"
+msgstr ":: %s: қазір %s сұрап тұр\n"
+
+#, c-format
+msgid "%s is designated as a HoldPkg.\n"
+msgstr "%s қазір HoldPkg ішінде көрсетілген.\n"
+
+#, c-format
+msgid "HoldPkg was found in target list. Do you want to continue?"
+msgstr "HoldPkg мақсаттар тізімінде табылды. Жалғастырамыз ба?"
+
+#, c-format
+msgid " there is nothing to do\n"
+msgstr " істейтін ешнәрсе жоқ\n"
+
+#, c-format
+msgid "Do you want to remove these packages?"
+msgstr "Бұл дестелерді өшіруді қалайсыз ба?"
+
+#, c-format
+msgid "failed to commit transaction (%s)\n"
+msgstr "әрекетті аяқтау мүмкін емес (%s)\n"
+
+#, c-format
+msgid "could not access database directory\n"
+msgstr "дерекқор бумасына жету мүмкін емес\n"
+
+#, c-format
+msgid "could not remove %s\n"
+msgstr "%s өшіру мүмкін емес\n"
+
+#, c-format
+msgid "Do you want to remove %s?"
+msgstr "%s өшіруді қалайсыз ба?"
+
+#, c-format
+msgid "Database directory: %s\n"
+msgstr "Дерекқор бумасы: %s\n"
+
+#, c-format
+msgid "Do you want to remove unused repositories?"
+msgstr "Қолданылмайтын репозиторийларды өшіруді қалайсыз ба?"
+
+#, c-format
+msgid "Database directory cleaned up\n"
+msgstr "Дерекқор бумасы тазартылды\n"
+
+#, c-format
+msgid "Cache directory: %s\n"
+msgstr "Кэш бумасы: %s\n"
+
+#, c-format
+msgid "Packages to keep:\n"
+msgstr "Ұсталатын дестелер:\n"
+
+#, c-format
+msgid " All locally installed packages\n"
+msgstr " Барлық жергілікті орнатылған дестелер\n"
+
+#, c-format
+msgid " All current sync database packages\n"
+msgstr " Барлық ағымдағы sync дерекқорының дестелері\n"
+
+#, c-format
+msgid "Do you want to remove all other packages from cache?"
+msgstr "Кэштен барлық басқа дестелерді өшіруді қалайсыз ба?"
+
+#, c-format
+msgid "removing old packages from cache...\n"
+msgstr "кэш ішінен ескірген дестелер өшірілуде...\n"
+
+#, c-format
+msgid "Do you want to remove ALL files from cache?"
+msgstr "Кэш ішінен БАРЛЫҚ файлдарды өшіруді қалайсыз ба?"
+
+#, c-format
+msgid "removing all files from cache...\n"
+msgstr "кэш ішінен барлық файлдар өшірілуде...\n"
+
+#, c-format
+msgid "could not access cache directory %s\n"
+msgstr "%s кэш бумасына қатынау мүмкін емес\n"
+
+#, c-format
+msgid "File %s does not seem to be a valid package, remove it?"
+msgstr "%s файлы дұрыс дестеге ұқсамайды, оны өшіру керек пе?"
+
+#, c-format
+msgid "failed to update %s (%s)\n"
+msgstr "%s жаңарту мүмкін емес (%s)\n"
+
+#, c-format
+msgid " %s is up to date\n"
+msgstr " %s ескірмеді\n"
+
+#, c-format
+msgid "failed to synchronize any databases\n"
+msgstr "бірде-бір дерекқорды синхрондау мүмкін емес\n"
+
+#, c-format
+msgid "installed"
+msgstr "орнатылған"
+
+#, c-format
+msgid "repository '%s' does not exist\n"
+msgstr "'%s' репозиторийі жоқ болып тұр\n"
+
+#, c-format
+msgid "package '%s' was not found in repository '%s'\n"
+msgstr "'%s' дестесі '%s' репозиторийден табылмады\n"
+
+#, c-format
+msgid "package '%s' was not found\n"
+msgstr "'%s' дестесі табылмады\n"
+
+#, c-format
+msgid "repository \"%s\" was not found.\n"
+msgstr "\"%s\" репозиторийі табылмады.\n"
+
+#, c-format
+msgid "skipping target: %s\n"
+msgstr "мақсатты аттап өту: %s\n"
+
+#, c-format
+msgid "target not found: %s\n"
+msgstr "мақсаты табылмады: %s\n"
+
+#, c-format
+msgid ":: There are %d members in group %s:\n"
+msgstr ":: %d мүше бар, %s тобында:\n"
+
+#, c-format
+msgid "database not found: %s\n"
+msgstr "дерекқор табылмады: %s\n"
+
+#, c-format
+msgid ":: Starting full system upgrade...\n"
+msgstr ":: Жүйені толық жаңарту басталуда...\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict\n"
+msgstr ":: %s және %s өзара ерегіседі\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s)\n"
+msgstr ":: %s және %s өзара ерегіседі (%s)\n"
+
+#, c-format
+msgid "Proceed with download?"
+msgstr "Жүктеуді бастау керек пе?"
+
+#, c-format
+msgid "Proceed with installation?"
+msgstr "Орнатуды бастау керек пе?"
+
+#, c-format
+msgid "%s exists in both '%s' and '%s'\n"
+msgstr "%s қазір '%s' және '%s' құрамында бар\n"
+
+#, c-format
+msgid "%s: %s exists in filesystem\n"
+msgstr "%s: %s файлдық жүйеде бар болып тұр\n"
+
+#, c-format
+msgid "%s is invalid or corrupted\n"
+msgstr "%s қате не зақымдалған\n"
+
+#, c-format
+msgid "Errors occurred, no packages were upgraded.\n"
+msgstr "Қателер табылды, дестелер жаңартылмады.\n"
+
+#, c-format
+msgid ":: Synchronizing package databases...\n"
+msgstr ":: Дестелер дерекқоры синхрондалуда...\n"
+
+#, c-format
+msgid ":: The following packages should be upgraded first :\n"
+msgstr ":: Бұл дестелер бірінші болып жаңартылады :\n"
+
+#, c-format
+msgid ""
+":: Do you want to cancel the current operation\n"
+":: and upgrade these packages now?"
+msgstr ""
+":: Сіз ағымдағы әрекетті үзу мен бұл дестелерді\n"
+":: қазір жаңартуды қалайсыз ба?"
+
+#, c-format
+msgid "failed to init transaction (%s)\n"
+msgstr "әрекетті бастау қатемен аяқталды (%s)\n"
+
+#, c-format
+msgid ""
+" if you're sure a package manager is not already\n"
+" running, you can remove %s\n"
+msgstr ""
+" pacman қазір қосылып тұрмағанына сенімді болсаңыз\n"
+" %s өшіре аласыз\n"
+
+#, c-format
+msgid " try running pacman-db-upgrade\n"
+msgstr " pacman-db-upgrade жөнелтіп көріңіз\n"
+
+#, c-format
+msgid "failed to release transaction (%s)\n"
+msgstr "әрекетті босату сәтсіз (%s)\n"
+
+#, c-format
+msgid "None"
+msgstr "Көрсетілмеген"
+
+#, c-format
+msgid "insufficient columns available for table display\n"
+msgstr ""
+
+#, c-format
+msgid "Name"
+msgstr ""
+
+#, c-format
+msgid "Old Version"
+msgstr ""
+
+#, c-format
+msgid "New Version"
+msgstr ""
+
+#, c-format
+msgid "Size"
+msgstr ""
+
+#, c-format
+msgid "Targets (%d):"
+msgstr "Мақсаттар (%d):"
+
+#, c-format
+msgid "Remove (%d):"
+msgstr "Өшіру (%d):"
+
+#, fuzzy, c-format
+msgid "Total Download Size: %.2f %s\n"
+msgstr "Жүктеліп алынатын көлем: %.2f Мб\n"
+
+#, fuzzy, c-format
+msgid "Total Installed Size: %.2f %s\n"
+msgstr "Орнатылатын көлем : %.2f Мб\n"
+
+#, fuzzy, c-format
+msgid "Net Upgrade Size: %.2f %s\n"
+msgstr "Жүктеліп алынатын көлем: %.2f Мб\n"
+
+#, fuzzy, c-format
+msgid "Total Removed Size: %.2f %s\n"
+msgstr "Өшірілетін көлем: %.2f Мб\n"
+
+#, c-format
+msgid "New optional dependencies for %s\n"
+msgstr "%s үшін жаңа қосымша тәуелділіктер\n"
+
+#, c-format
+msgid "Optional dependencies for %s\n"
+msgstr "%s үшін қосымша тәуелділіктер\n"
+
+#, c-format
+msgid "Repository %s\n"
+msgstr "Репозиторий %s\n"
+
+#, c-format
+msgid "Invalid value: %d is not between %d and %d\n"
+msgstr "Мәні қате: %d мәні %d және %d арасында жатқан жоқ\n"
+
+#, c-format
+msgid "Invalid number: %s\n"
+msgstr "Қате нөмір: %s\n"
+
+#, c-format
+msgid "Enter a selection (default=all)"
+msgstr "Таңдауды енгізіңіз (бастапқы мәні=all)"
+
+#, c-format
+msgid "Enter a number (default=%d)"
+msgstr "Нөмірді енгізіңіз (бастапқы мәні=%d)"
+
+#, c-format
+msgid "[Y/n]"
+msgstr "[Y/n]"
+
+#, c-format
+msgid "[y/N]"
+msgstr "[y/N]"
+
+#, c-format
+msgid "Y"
+msgstr "Y"
+
+#, c-format
+msgid "YES"
+msgstr "YES"
+
+#, c-format
+msgid "N"
+msgstr "N"
+
+#, c-format
+msgid "NO"
+msgstr "NO"
+
+#, c-format
+msgid "failed to allocate string\n"
+msgstr "string үшін орын бөлу сәтсіз\n"
+
+#, c-format
+msgid "error: %s"
+msgstr "қате: %s"
+
+#, c-format
+msgid "warning: %s"
+msgstr "ескерту: %s"
+
+#, c-format
+msgid "error: "
+msgstr "қате: "
+
+#, c-format
+msgid "warning: "
+msgstr "ескерту: "
+
diff --git a/src/pacman/po/nb.po b/src/pacman/po/nb.po
new file mode 100644
index 00000000..bc79ced1
--- /dev/null
+++ b/src/pacman/po/nb.po
@@ -0,0 +1,1124 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Pacman Development Team <pacman-dev@archlinux.org>
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Arch Linux Pacman package manager\n"
+"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
+"POT-Creation-Date: 2011-06-23 21:59-0500\n"
+"PO-Revision-Date: 2011-04-12 09:21+0000\n"
+"Last-Translator: Jonhoo <jon@thesquareplanet.com>\n"
+"Language-Team: Norwegian Bokmål <None>\n"
+"Language: nb\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"
+
+#, c-format
+msgid "checking dependencies...\n"
+msgstr "sjekker avhengigheter ...\n"
+
+#, c-format
+msgid "checking for file conflicts...\n"
+msgstr "leter etter filkonflikter ...\n"
+
+#, c-format
+msgid "resolving dependencies...\n"
+msgstr "avgjør avhengigheter ...\n"
+
+#, c-format
+msgid "looking for inter-conflicts...\n"
+msgstr "leter etter konflikter ...\n"
+
+#, c-format
+msgid "installing %s...\n"
+msgstr "installerer %s ...\n"
+
+#, c-format
+msgid "removing %s...\n"
+msgstr "fjerner %s ...\n"
+
+#, c-format
+msgid "upgrading %s...\n"
+msgstr "oppgraderer %s ...\n"
+
+#, c-format
+msgid "checking package integrity...\n"
+msgstr "sjekker pakkens integritet ...\n"
+
+#, c-format
+msgid "checking delta integrity...\n"
+msgstr "sjekker delta-integritet ...\n"
+
+#, c-format
+msgid "applying deltas...\n"
+msgstr "påfører deltaer ...\n"
+
+#, c-format
+msgid "generating %s with %s... "
+msgstr "genererer %s med %s ..."
+
+#, c-format
+msgid "success!\n"
+msgstr "suksess!\n"
+
+#, c-format
+msgid "failed.\n"
+msgstr "feilet.\n"
+
+#, c-format
+msgid ":: Retrieving packages from %s...\n"
+msgstr ":: Henter pakker fra %s ...\n"
+
+#, c-format
+msgid "checking available disk space...\n"
+msgstr "sjekker ledig diskplass...\n"
+
+#, c-format
+msgid ":: %s is in IgnorePkg/IgnoreGroup. Install anyway?"
+msgstr ":: %s finnes i IgnorePkg/IgnoreGroup. Installér likevel?"
+
+#, c-format
+msgid ":: Replace %s with %s/%s?"
+msgstr ":: Bytt ut %s med %s/%s?"
+
+#, c-format
+msgid ":: %s and %s are in conflict. Remove %s?"
+msgstr ":: konflikt mellom %s og %s. Fjerne %s?"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s). Remove %s?"
+msgstr ":: konflikt mellom %s og %s (%s). Fjerne %s?"
+
+#, c-format
+msgid ""
+":: The following package cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgid_plural ""
+":: The following packages cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgstr[0] ""
+":: Den følgende pakken kunne ikke oppgraderes grunnet uoppfylte "
+"avhengigheter:\n"
+msgstr[1] ""
+":: De følgende pakkene kunne ikke oppgraderes grunnet uoppfylte "
+"avhengigheter:\n"
+
+#, c-format
+msgid "Do you want to skip the above package for this upgrade?"
+msgid_plural "Do you want to skip the above packages for this upgrade?"
+msgstr[0] ""
+"Ønsker du å hoppe over den overnevnte pakken i denne oppgraderingen?"
+msgstr[1] ""
+"Ønsker du å hoppe over de overnevnte pakkene i denne oppgraderingen?"
+
+#, c-format
+msgid ":: There are %d providers available for %s:\n"
+msgstr ":: %d tilbydere av %s er tilgjengelig:\n"
+
+#, c-format
+msgid ":: %s-%s: local version is newer. Upgrade anyway?"
+msgstr ":: %s-%s: lokal versjon er nyere. Oppgradér likevel?"
+
+#, c-format
+msgid ":: File %s is corrupted. Do you want to delete it?"
+msgstr ":: Fil %s er korrupt. Vil du slette den?"
+
+#, c-format
+msgid "installing"
+msgstr "installerer"
+
+#, c-format
+msgid "upgrading"
+msgstr "oppgraderer"
+
+#, c-format
+msgid "removing"
+msgstr "fjerner"
+
+#, c-format
+msgid "checking for file conflicts"
+msgstr "leter etter filkonflikter"
+
+#, c-format
+msgid "checking available disk space"
+msgstr "sjekker ledig diskplass"
+
+#, c-format
+msgid "checking package integrity"
+msgstr "sjekker pakkeintegritet"
+
+#, c-format
+msgid "downloading %s...\n"
+msgstr "laster ned %s ...\n"
+
+#, c-format
+msgid "malloc failure: could not allocate %zd bytes\n"
+msgstr "malloc-feil: kunne ikke allokere %zd bytes\n"
+
+#, c-format
+msgid "could not get current working directory\n"
+msgstr "kunne ikke avgjøre arbeidsmappe\n"
+
+#, c-format
+msgid "could not chdir to download directory %s\n"
+msgstr "kunne ikke chdir til nedlastingsmappe %s\n"
+
+#, c-format
+msgid "running XferCommand: fork failed!\n"
+msgstr "kjører XferCommand: splitting feilet\n"
+
+#, c-format
+msgid "could not change directory to %s (%s)\n"
+msgstr "kunne ikke endre mappe til %s (%s)\n"
+
+#, c-format
+msgid "invalid value for 'CleanMethod' : '%s'\n"
+msgstr "invalid verdi for 'CleanMethod' : '%s'\n"
+
+#, c-format
+msgid ""
+"config file %s, line %d: directive '%s' in section '%s' not recognized.\n"
+msgstr ""
+"konfigurasjonsfil %s, linje %d: direktiv '%s' i seksjon '%s' ikke "
+"gjenkjent.\n"
+
+#, fuzzy, c-format
+msgid "config file %s, line %d: directive '%s' has invalid value '%s'\n"
+msgstr "konfigurasjonsfil %s, linje %d: direktiv '%s' trenger en verdi\n"
+
+#, c-format
+msgid ""
+"The mirror '%s' contains the $arch variable, but no Architecture is "
+"defined.\n"
+msgstr ""
+"The mirror '%s' contains the $arch variable, but no Architecture is "
+"defined.\n"
+
+#, c-format
+msgid "could not add server URL to database '%s': %s (%s)\n"
+msgstr "kunne ikke legge til server-URL til database '%s' %s (%s)\n"
+
+#, c-format
+msgid "failed to initialize alpm library (%s)\n"
+msgstr "feilet under initialisering av alpm-biblioteket (%s)\n"
+
+#, c-format
+msgid "problem setting logfile '%s' (%s)\n"
+msgstr "problem under initiering av loggfil '%s' (%s)\n"
+
+#, fuzzy, c-format
+msgid "problem setting gpgdir '%s' (%s)\n"
+msgstr "problem under bytte av rot-mappe '%s' (%s)\n"
+
+#, c-format
+msgid "could not register '%s' database (%s)\n"
+msgstr "kunne ikke registrere '%s'-databasen (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not set verify option for database '%s' (%s)\n"
+msgstr "kunne ikke legge til server-URL til database '%s' %s (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not add mirror '%s' to database '%s' (%s)\n"
+msgstr "kunne ikke legge til server-URL til database '%s' %s (%s)\n"
+
+#, c-format
+msgid "config parsing exceeded max recursion depth of %d.\n"
+msgstr ""
+
+#, c-format
+msgid "config file %s could not be read.\n"
+msgstr "konfigurasjonsfil %s kunne ikke leses.\n"
+
+#, c-format
+msgid "config file %s, line %d: bad section name.\n"
+msgstr "konfigurasjonsfil %s, linje %d: ugyldig seksjonsnavn.\n"
+
+#, c-format
+msgid "config file %s, line %d: syntax error in config file- missing key.\n"
+msgstr ""
+"konfigurasjonsfil %s, linje %d: syntaksfeil i konfigurasjonsfil - mangler "
+"nøkker.\n"
+
+#, c-format
+msgid "config file %s, line %d: All directives must belong to a section.\n"
+msgstr ""
+"konfigurasjonsfil %s, linje %d: Alle direktiver må høre til en seksjon.\n"
+
+#, c-format
+msgid "config file %s, line %d: directive '%s' needs a value\n"
+msgstr "konfigurasjonsfil %s, linje %d: direktiv '%s' trenger en verdi\n"
+
+#, c-format
+msgid "no targets specified (use -h for help)\n"
+msgstr "ingen mål spesifisert (bruk -h for hjelp)\n"
+
+#, c-format
+msgid "no install reason specified (use -h for help)\n"
+msgstr "ingen installasjonstype ble oppgitt (bruk -h for hjelp)\n"
+
+#, c-format
+msgid "could not set install reason for package %s (%s)\n"
+msgstr "kunne ikke sette installasjonstype for pakke %s (%s)\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'installed as dependency'\n"
+msgstr "%s: installasjonstype ble satt til 'installert som avhengighet'\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'explicitly installed'\n"
+msgstr "%s: installasjonstype ble satt til 'manuelt installert'\n"
+
+#, c-format
+msgid "Explicitly installed"
+msgstr "Manuelt installert"
+
+#, c-format
+msgid "Installed as a dependency for another package"
+msgstr "Installert som en avhengighet av en annen pakke"
+
+#, c-format
+msgid "Unknown"
+msgstr "Ukjent"
+
+#, c-format
+msgid "Repository :"
+msgstr "Pakkebrønn :"
+
+#, c-format
+msgid "Name :"
+msgstr "Navn :"
+
+#, c-format
+msgid "Version :"
+msgstr "Versjon :"
+
+#, c-format
+msgid "URL :"
+msgstr "URL :"
+
+#, c-format
+msgid "Licenses :"
+msgstr "Lisenser :"
+
+#, c-format
+msgid "Groups :"
+msgstr "Grupper :"
+
+#, c-format
+msgid "Provides :"
+msgstr "Inneholder :"
+
+#, c-format
+msgid "Depends On :"
+msgstr "Avhenger av :"
+
+#, c-format
+msgid "Optional Deps :"
+msgstr "Valgfrie avhengigheter :"
+
+#, c-format
+msgid "Required By :"
+msgstr "Avhenges av :"
+
+#, c-format
+msgid "Conflicts With :"
+msgstr "Strider med :"
+
+#, c-format
+msgid "Replaces :"
+msgstr "Erstatter :"
+
+#, fuzzy, c-format
+msgid "Download Size : %6.2f %s\n"
+msgstr "Nedlastingsstørrelse : %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Compressed Size: %6.2f %s\n"
+msgstr "Komprimert størrelse : %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Installed Size : %6.2f %s\n"
+msgstr "Installert størrelse : %6.2f K\n"
+
+#, c-format
+msgid "Packager :"
+msgstr "Pakkeeier :"
+
+#, c-format
+msgid "Architecture :"
+msgstr "Arkitektur :"
+
+#, c-format
+msgid "Build Date :"
+msgstr "Pakkedato :"
+
+#, c-format
+msgid "Install Date :"
+msgstr "Installasjonsdato :"
+
+#, c-format
+msgid "Install Reason :"
+msgstr "Grunn for installasjon :"
+
+#, c-format
+msgid "Install Script :"
+msgstr "Installeringsskript :"
+
+#, c-format
+msgid "Yes"
+msgstr "Ja"
+
+#, c-format
+msgid "No"
+msgstr "Nei"
+
+#, c-format
+msgid "MD5 Sum :"
+msgstr "MD5 Sum :"
+
+#, c-format
+msgid "Description :"
+msgstr "Beskrivelse :"
+
+#, c-format
+msgid "could not calculate checksums for %s\n"
+msgstr "kunne ikke kalkulere sjekksummer for %s\n"
+
+#, c-format
+msgid "Backup Files:\n"
+msgstr "Backup-filer:\n"
+
+#, c-format
+msgid "(none)\n"
+msgstr "(ingen)\n"
+
+#, c-format
+msgid "no changelog available for '%s'.\n"
+msgstr "ingen endringslogg tilgjengelig for '%s'.\n"
+
+#, c-format
+msgid "options"
+msgstr "alternativer"
+
+#, c-format
+msgid "file(s)"
+msgstr "fil(er)"
+
+#, c-format
+msgid "package(s)"
+msgstr "pakke(r)"
+
+#, c-format
+msgid "usage"
+msgstr "bruk"
+
+#, c-format
+msgid "operation"
+msgstr "operasjon"
+
+#, c-format
+msgid "operations:\n"
+msgstr "operasjoner:\n"
+
+#, c-format
+msgid ""
+"\n"
+"use '%s {-h --help}' with an operation for available options\n"
+msgstr ""
+"\n"
+"Bruk '%s {-h --help}' sammen med en operasjon for tilgjengelige "
+"alternativer\n"
+
+#, c-format
+msgid ""
+" -c, --cascade remove packages and all packages that depend on them\n"
+msgstr " -c, --cascade fjern pakker og alle pakker som avhenger av dem\n"
+
+#, c-format
+msgid " -n, --nosave remove configuration files\n"
+msgstr " -n, --nosave fjern konfigurasjonsfiler\n"
+
+#, c-format
+msgid ""
+" -s, --recursive remove unnecessary dependencies\n"
+" (-ss includes explicitly installed dependencies)\n"
+msgstr ""
+" -s, --recursive fjern unødvendige avhengigheter \n"
+" (-ss inkluderer manuelt installerte avhengigheter)\n"
+
+#, c-format
+msgid " -u, --unneeded remove unneeded packages\n"
+msgstr " -u, --unneeded fjern unødvendige pakker\n"
+
+#, c-format
+msgid " -c, --changelog view the changelog of a package\n"
+msgstr " -c, --changelog vis endringsloggen for en pakke\n"
+
+#, c-format
+msgid ""
+" -d, --deps list packages installed as dependencies [filter]\n"
+msgstr ""
+" -d, --deps list opp pakker installert som avhengigheter [filter]\n"
+
+#, c-format
+msgid " -e, --explicit list packages explicitly installed [filter]\n"
+msgstr " -e, --explicit list opp pakker installert manuelt [filter]\n"
+
+#, c-format
+msgid " -g, --groups view all members of a package group\n"
+msgstr " -g, --groups list opp alle medlemmene i en pakkegruppe\n"
+
+#, c-format
+msgid ""
+" -i, --info view package information (-ii for backup files)\n"
+msgstr " -i, --info vis pakkeinformasjon (-ii for backup-filer)\n"
+
+#, c-format
+msgid ""
+" -k, --check check that the files owned by the package(s) are "
+"present\n"
+msgstr ""
+" -k, --check sjekk at filene som er eid av pakken(e) er tilstede\n"
+
+#, c-format
+msgid " -l, --list list the contents of the queried package\n"
+msgstr " -l, --list lister opp innholdet i etterspurte pakker\n"
+
+#, c-format
+msgid ""
+" -m, --foreign list installed packages not found in sync db(s) "
+"[filter]\n"
+msgstr ""
+" -m, --foreign lister opp installerte pakker ikke funnet i sync-database"
+"(r) [filter]\n"
+
+#, c-format
+msgid " -o, --owns <file> query the package that owns <file>\n"
+msgstr " -o --owns <fil> finner pakken som eier <fil>\n"
+
+#, c-format
+msgid " -p, --file <package> query a package file instead of the database\n"
+msgstr " -p, --file <pakke> etterspør en pakkefil isteden for databasen\n"
+
+#, c-format
+msgid " -q, --quiet show less information for query and search\n"
+msgstr ""
+" -q, --quiet vis mindre informasjon for etterspørring og søk\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search locally-installed packages for matching "
+"strings\n"
+msgstr ""
+" -s, --search <regex> leter i lokalt installerte pakker for like tekst-"
+"strenger\n"
+
+#, c-format
+msgid ""
+" -t, --unrequired list packages not required by any package [filter]\n"
+msgstr ""
+" -t, --unrequired lister opp pakker ikke påkrevd av noen pakker "
+"[filter]\n"
+
+#, c-format
+msgid " -u, --upgrades list outdated packages [filter]\n"
+msgstr " -u, --upgrades lister opp utdaterte pakker [filter]\n"
+
+#, c-format
+msgid ""
+" -c, --clean remove old packages from cache directory (-cc for "
+"all)\n"
+msgstr ""
+" -c, --clean fjern gamle pakker fra cache-mappen (-cc for alt)\n"
+
+#, c-format
+msgid " -i, --info view package information\n"
+msgstr " -i, --info vis pakkeinformasjon\n"
+
+#, c-format
+msgid " -l, --list <repo> view a list of packages in a repo\n"
+msgstr " -l, --list <brønn> vis en liste over pakker i en pakkebrønn\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search remote repositories for matching strings\n"
+msgstr ""
+" -s, --search <regex> leter i eksterne pakkebrønner etter like tekst-"
+"strenger\n"
+
+#, c-format
+msgid ""
+" -u, --sysupgrade upgrade installed packages (-uu allows downgrade)\n"
+msgstr ""
+" -u, --sysupgrade oppgraderer installerte pakker (-uu tillater "
+"nedgradering)\n"
+
+#, c-format
+msgid ""
+" -w, --downloadonly download packages but do not install/upgrade "
+"anything\n"
+msgstr ""
+" -w, --downloadonly laster ned pakker, men installerer/oppgraderer "
+"ingenting\n"
+
+#, c-format
+msgid ""
+" -y, --refresh download fresh package databases from the server\n"
+msgstr " -y, --refresh laster ned nye pakkedatabaser fra serveren\n"
+
+#, c-format
+msgid " --needed don't reinstall up to date packages\n"
+msgstr " --needed ikke reinstaller pakker som er oppdaterte\n"
+
+#, c-format
+msgid " --asdeps mark packages as non-explicitly installed\n"
+msgstr " --asdeps marker pakker som ikke eksplisitt installert\n"
+
+#, c-format
+msgid " --asexplicit mark packages as explicitly installed\n"
+msgstr " --asexplicit marker pakker som eksplisitt installert\n"
+
+#, c-format
+msgid " -f, --force force install, overwrite conflicting files\n"
+msgstr ""
+" -f, --force tving en installasjon, skriv over motstridige filer\n"
+
+#, c-format
+msgid " --asdeps install packages as non-explicitly installed\n"
+msgstr ""
+" --asdeps installér pakker som om andre pakker er avhengig av "
+"dem\n"
+
+#, c-format
+msgid " --asexplicit install packages as explicitly installed\n"
+msgstr " --asexplicit installér pakker som manuelt installert\n"
+
+#, c-format
+msgid ""
+" --ignore <pkg> ignore a package upgrade (can be used more than "
+"once)\n"
+msgstr ""
+" --ignore <pakke> ignorer en pakkeoppgradering (kan bli brukt mer enn "
+"én gang)\n"
+
+#, c-format
+msgid ""
+" --ignoregroup <grp>\n"
+" ignore a group upgrade (can be used more than once)\n"
+msgstr ""
+" --ignoregroup ignorer en gruppeoppgradering (kan bli brukt mer enn "
+"én gang)\n"
+
+#, c-format
+msgid ""
+" -d, --nodeps skip dependency version checks (-dd to skip all "
+"checks)\n"
+msgstr ""
+" -d, --nodeps hopp over versjonssjekk for avhengigheter (-dd for å "
+"hoppe over all sjekker)\n"
+
+#, c-format
+msgid ""
+" -k, --dbonly only modify database entries, not package files\n"
+msgstr " -k, --dbonly bare endre databasedata, ikke pakkefilene\n"
+
+#, c-format
+msgid ""
+" --noprogressbar do not show a progress bar when downloading files\n"
+msgstr " --noprogressbar ikke vis framdrift under nedlasting av filer\n"
+
+#, c-format
+msgid ""
+" --noscriptlet do not execute the install scriptlet if one exists\n"
+msgstr " --noscriptlet ikke kjør install-scriptet hvis det eksisterer\n"
+
+#, c-format
+msgid ""
+" --print print the targets instead of performing the "
+"operation\n"
+msgstr ""
+" --print skriv ut målene istedenfor å utføre handlingen\n"
+
+#, c-format
+msgid ""
+" --print-format <string>\n"
+" specify how the targets should be printed\n"
+msgstr ""
+" --print-format <string>\n"
+" oppgir hvordan målene skal bli vist\n"
+
+#, c-format
+msgid " -b, --dbpath <path> set an alternate database location\n"
+msgstr " -b, --dbpath <fil> bruk en alternativ databaseplassering\n"
+
+#, c-format
+msgid " -r, --root <path> set an alternate installation root\n"
+msgstr " -r, --root <mappe> bruker en alternativ installasjons-rot\n"
+
+#, c-format
+msgid " -v, --verbose be verbose\n"
+msgstr " -v, --verbose vær utdypende\n"
+
+#, c-format
+msgid " --arch <arch> set an alternate architecture\n"
+msgstr " --arch <arch> set en alternativ arkitektur\n"
+
+#, c-format
+msgid " --cachedir <dir> set an alternate package cache location\n"
+msgstr ""
+" --cachedir <mappe> bruk en alternativ plassering for mellomlagring av "
+"pakker\n"
+
+#, c-format
+msgid " --config <path> set an alternate configuration file\n"
+msgstr " --config <fil> bruk en alternativ konfigurasjonsfil\n"
+
+#, c-format
+msgid " --debug display debug messages\n"
+msgstr " --debug viser feilsøkingsbeskjeder\n"
+
+#, fuzzy, c-format
+msgid " --gpgdir <path> set an alternate home directory for GnuPG\n"
+msgstr " --logfile <fil> bruk en alternativ loggfil\n"
+
+#, c-format
+msgid " --logfile <path> set an alternate log file\n"
+msgstr " --logfile <fil> bruk en alternativ loggfil\n"
+
+#, c-format
+msgid " --noconfirm do not ask for any confirmation\n"
+msgstr " --nocorfirm ikke krev bekrefting fra brukeren\n"
+
+#, c-format
+msgid ""
+" This program may be freely redistributed under\n"
+" the terms of the GNU General Public License.\n"
+msgstr ""
+"\t\t Dette programet kan fritt distribueres, ved rammene\n"
+" som GNU Gereral Public License setter.\n"
+
+#, c-format
+msgid "'%s' is not a valid debug level\n"
+msgstr "'%s' er ikke et gyldig feilsøkingsnivå\n"
+
+#, c-format
+msgid "only one operation may be used at a time\n"
+msgstr "kun én operasjon kan bli brukt av gangen\n"
+
+#, c-format
+msgid "invalid option\n"
+msgstr "ugyldig valg\n"
+
+#, c-format
+msgid "buffer overflow detected in arg parsing\n"
+msgstr "bufferoverflyt oppdaget i gitte argumenter\n"
+
+#, c-format
+msgid "failed to reopen stdin for reading: (%s)\n"
+msgstr "klarte ikke å åpne stdin for lesing: (%s)\n"
+
+#, c-format
+msgid "you cannot perform this operation unless you are root.\n"
+msgstr "du kan ikke utføre denne operasjonen hvis du ikke er rot-bruker.\n"
+
+#, c-format
+msgid "no operation specified (use -h for help)\n"
+msgstr "ingen operasjon spesifisert (bruk -h for hjelp)\n"
+
+#, c-format
+msgid "%s is owned by %s %s\n"
+msgstr "%s er eid av %s %s\n"
+
+#, c-format
+msgid "no file was specified for --owns\n"
+msgstr "ingen fil ble spesifisert for --owns\n"
+
+#, c-format
+msgid "failed to find '%s' in PATH: %s\n"
+msgstr "fant ikke '%s' i PATH: %s\n"
+
+#, c-format
+msgid "failed to read file '%s': %s\n"
+msgstr "feilet under innlesing av '%s' : %s\n"
+
+#, c-format
+msgid "cannot determine ownership of directory '%s'\n"
+msgstr "kunne ikke avgjøre eierskapet til mappen '%s'\n"
+
+#, c-format
+msgid "cannot determine real path for '%s': %s\n"
+msgstr "kunne ikke bestemme reell mappe for '%s' : %s\n"
+
+#, c-format
+msgid "path too long: %s%s\n"
+msgstr "stien er for lang: %s%s\n"
+
+#, c-format
+msgid "No package owns %s\n"
+msgstr "Ingen pakke eier %s\n"
+
+#, c-format
+msgid "group \"%s\" was not found\n"
+msgstr "gruppe \"%s\" ble ikke funnet\n"
+
+#, c-format
+msgid "%s: %d total file, "
+msgid_plural "%s: %d total files, "
+msgstr[0] "%s: %d fil "
+msgstr[1] "%s: %d filer, "
+
+#, c-format
+msgid "%d missing file\n"
+msgid_plural "%d missing files\n"
+msgstr[0] "%d manglende fil\n"
+msgstr[1] "%d manglende filer\n"
+
+#, c-format
+msgid "no usable package repositories configured.\n"
+msgstr "ingen brukbare pakkebrønner konfigurert.\n"
+
+#, c-format
+msgid "package \"%s\" not found\n"
+msgstr "pakke \"%s\" ikke funnet\n"
+
+#, c-format
+msgid "failed to prepare transaction (%s)\n"
+msgstr "feilet å forberede transaksjon (%s)\n"
+
+#, c-format
+msgid ":: package %s does not have a valid architecture\n"
+msgstr ":: pakken %s har ikke en gyldig arkitektur\n"
+
+#, c-format
+msgid ":: %s: requires %s\n"
+msgstr ":: %s: krever %s\n"
+
+#, c-format
+msgid "%s is designated as a HoldPkg.\n"
+msgstr "%s er valgt som en HoldPkg.\n"
+
+#, c-format
+msgid "HoldPkg was found in target list. Do you want to continue?"
+msgstr "HoldPkg ble funnet i målliste. Vil du fortsette?"
+
+#, c-format
+msgid " there is nothing to do\n"
+msgstr " ingen handling nødvendig\n"
+
+#, c-format
+msgid "Do you want to remove these packages?"
+msgstr "Vil du fjerne disse pakkene?"
+
+#, c-format
+msgid "failed to commit transaction (%s)\n"
+msgstr "feilet å utføre transaksjon (%s)\n"
+
+#, c-format
+msgid "could not access database directory\n"
+msgstr "fikk ikke tilgang til database-mappe\n"
+
+#, c-format
+msgid "could not remove %s\n"
+msgstr "kunne ikke fjerne %s\n"
+
+#, c-format
+msgid "Do you want to remove %s?"
+msgstr "Vil du fjerne %s?"
+
+#, c-format
+msgid "Database directory: %s\n"
+msgstr "Database-mappe: %s\n"
+
+#, c-format
+msgid "Do you want to remove unused repositories?"
+msgstr "Vil du fjerne ubrukte pakkebrønner?"
+
+#, c-format
+msgid "Database directory cleaned up\n"
+msgstr "Database-mappe rensket\n"
+
+#, c-format
+msgid "Cache directory: %s\n"
+msgstr "Cache-mappe: %s\n"
+
+#, c-format
+msgid "Packages to keep:\n"
+msgstr "Pakker som skal beholdes:\n"
+
+#, c-format
+msgid " All locally installed packages\n"
+msgstr " Alle lokalt installerte pakker\n"
+
+#, c-format
+msgid " All current sync database packages\n"
+msgstr " Alle pakker i sync-databasen\n"
+
+#, c-format
+msgid "Do you want to remove all other packages from cache?"
+msgstr "Vil du fjerne alle pakkene i cachen?"
+
+#, c-format
+msgid "removing old packages from cache...\n"
+msgstr "fjerner gamle pakker fra cache ...\n"
+
+#, c-format
+msgid "Do you want to remove ALL files from cache?"
+msgstr "Vil du fjerne ALLE filer fra cache?"
+
+#, c-format
+msgid "removing all files from cache...\n"
+msgstr "fjerner alle filer fra cache ...\n"
+
+#, c-format
+msgid "could not access cache directory %s\n"
+msgstr "kunne ikke lese cache mappen %s\n"
+
+#, c-format
+msgid "File %s does not seem to be a valid package, remove it?"
+msgstr "Fil %s ser ikke ut til å være en gyldig pakke. Fjern den?"
+
+#, c-format
+msgid "failed to update %s (%s)\n"
+msgstr "klarte ikke å oppdatere %s (%s)\n"
+
+#, c-format
+msgid " %s is up to date\n"
+msgstr " %s er oppdatert\n"
+
+#, c-format
+msgid "failed to synchronize any databases\n"
+msgstr "klarte ikke å synkronisere noen databaser\n"
+
+#, c-format
+msgid "installed"
+msgstr "installert"
+
+#, c-format
+msgid "repository '%s' does not exist\n"
+msgstr "pakkebrønn '%s' finnes ikke\n"
+
+#, c-format
+msgid "package '%s' was not found in repository '%s'\n"
+msgstr "pakke '%s' ble ikke funnet i pakkebrønn '%s'\n"
+
+#, c-format
+msgid "package '%s' was not found\n"
+msgstr "pakke '%s' ble ikke funnet\n"
+
+#, c-format
+msgid "repository \"%s\" was not found.\n"
+msgstr "pakkebrønn \"%s\" ble ikke funnet.\n"
+
+#, c-format
+msgid "skipping target: %s\n"
+msgstr "hopper over mål: %s\n"
+
+#, c-format
+msgid "target not found: %s\n"
+msgstr "målet ble ikke funnet: %s\n"
+
+#, c-format
+msgid ":: There are %d members in group %s:\n"
+msgstr ":: Det er %d elementer i gruppen %s:\n"
+
+#, c-format
+msgid "database not found: %s\n"
+msgstr "databasen ble ikke funnet: %s\n"
+
+#, c-format
+msgid ":: Starting full system upgrade...\n"
+msgstr ":: Starter full systemoppgradering ...\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict\n"
+msgstr ":: konflikt mellom %s og %s\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s)\n"
+msgstr ":: konflikt mellom %s og %s (%s)\n"
+
+#, c-format
+msgid "Proceed with download?"
+msgstr "Fortsett til nedlasting?"
+
+#, c-format
+msgid "Proceed with installation?"
+msgstr "Fortsett til installasjon?"
+
+#, c-format
+msgid "%s exists in both '%s' and '%s'\n"
+msgstr "%s finnes i både '%s' og '%s'\n"
+
+#, c-format
+msgid "%s: %s exists in filesystem\n"
+msgstr "%s: %s finnes i filsystem\n"
+
+#, c-format
+msgid "%s is invalid or corrupted\n"
+msgstr "%s er invalid eller korrupt\n"
+
+#, c-format
+msgid "Errors occurred, no packages were upgraded.\n"
+msgstr "Feil oppstod, ingen pakker ble oppgradert.\n"
+
+#, c-format
+msgid ":: Synchronizing package databases...\n"
+msgstr ":: Synkroniserer pakkedatabaser ...\n"
+
+#, c-format
+msgid ":: The following packages should be upgraded first :\n"
+msgstr ":: Følgende pakker bør oppgraderes først :\n"
+
+#, c-format
+msgid ""
+":: Do you want to cancel the current operation\n"
+":: and upgrade these packages now?"
+msgstr ""
+":: Vil du avslutte nåværende operasjon\n"
+":: og oppgradere disse pakkene nå?"
+
+#, c-format
+msgid "failed to init transaction (%s)\n"
+msgstr "feilet å initialisere transaksjon (%s)\n"
+
+#, c-format
+msgid ""
+" if you're sure a package manager is not already\n"
+" running, you can remove %s\n"
+msgstr ""
+" hvis du er sikker på at en pakkebehandler ikke alledere kjører\n"
+" kan du fjerne %s\n"
+
+#, c-format
+msgid " try running pacman-db-upgrade\n"
+msgstr " prøv å kjøre pacman-db-upgrade\n"
+
+#, c-format
+msgid "failed to release transaction (%s)\n"
+msgstr "feilet å løse ut transaksjon (%s)\n"
+
+#, c-format
+msgid "None"
+msgstr "Ingen"
+
+#, c-format
+msgid "insufficient columns available for table display\n"
+msgstr ""
+
+#, c-format
+msgid "Name"
+msgstr ""
+
+#, c-format
+msgid "Old Version"
+msgstr ""
+
+#, c-format
+msgid "New Version"
+msgstr ""
+
+#, c-format
+msgid "Size"
+msgstr ""
+
+#, c-format
+msgid "Targets (%d):"
+msgstr "Mål (%d):"
+
+#, c-format
+msgid "Remove (%d):"
+msgstr "Fjern (%d):"
+
+#, fuzzy, c-format
+msgid "Total Download Size: %.2f %s\n"
+msgstr "Total Nedlastingsmengde: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Installed Size: %.2f %s\n"
+msgstr "Total Installasjonsmengde: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Net Upgrade Size: %.2f %s\n"
+msgstr "Total Nedlastingsmengde: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Removed Size: %.2f %s\n"
+msgstr "Total Fjernet Mengde: %.2f MB\n"
+
+#, c-format
+msgid "New optional dependencies for %s\n"
+msgstr "Nye alternative avhengigheter for %s\n"
+
+#, c-format
+msgid "Optional dependencies for %s\n"
+msgstr "Alternative avhengigheter for %s\n"
+
+#, c-format
+msgid "Repository %s\n"
+msgstr "Pakkebrønn %s\n"
+
+#, c-format
+msgid "Invalid value: %d is not between %d and %d\n"
+msgstr "Ugyldig verdi: %d er ikke mellom %d og %d\n"
+
+#, c-format
+msgid "Invalid number: %s\n"
+msgstr "Ugyldig tallverdi: %s\n"
+
+#, c-format
+msgid "Enter a selection (default=all)"
+msgstr "Oppgi et valg (standardvalg=all)"
+
+#, c-format
+msgid "Enter a number (default=%d)"
+msgstr "Oppgi et tall (standardverdi=%d)"
+
+#, c-format
+msgid "[Y/n]"
+msgstr "[J/n]"
+
+#, c-format
+msgid "[y/N]"
+msgstr "[j/N]"
+
+#, c-format
+msgid "Y"
+msgstr "J"
+
+#, c-format
+msgid "YES"
+msgstr "JA"
+
+#, c-format
+msgid "N"
+msgstr "N"
+
+#, c-format
+msgid "NO"
+msgstr "NEI"
+
+#, c-format
+msgid "failed to allocate string\n"
+msgstr "klarte ikke å tilegne tekstlinje\n"
+
+#, c-format
+msgid "error: %s"
+msgstr "feil: %s"
+
+#, c-format
+msgid "warning: %s"
+msgstr "advarsel: %s"
+
+#, c-format
+msgid "error: "
+msgstr "feil: "
+
+#, c-format
+msgid "warning: "
+msgstr "advarsel: "
+
diff --git a/src/pacman/po/pacman.pot b/src/pacman/po/pacman.pot
new file mode 100644
index 00000000..bb50f332
--- /dev/null
+++ b/src/pacman/po/pacman.pot
@@ -0,0 +1,1070 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Pacman Development Team <pacman-dev@archlinux.org>
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pacman 3.5.3\n"
+"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
+"POT-Creation-Date: 2011-08-08 16:32-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#, c-format
+msgid "checking dependencies...\n"
+msgstr ""
+
+#, c-format
+msgid "checking for file conflicts...\n"
+msgstr ""
+
+#, c-format
+msgid "resolving dependencies...\n"
+msgstr ""
+
+#, c-format
+msgid "looking for inter-conflicts...\n"
+msgstr ""
+
+#, c-format
+msgid "installing %s...\n"
+msgstr ""
+
+#, c-format
+msgid "removing %s...\n"
+msgstr ""
+
+#, c-format
+msgid "upgrading %s...\n"
+msgstr ""
+
+#, c-format
+msgid "checking package integrity...\n"
+msgstr ""
+
+#, c-format
+msgid "checking delta integrity...\n"
+msgstr ""
+
+#, c-format
+msgid "applying deltas...\n"
+msgstr ""
+
+#, c-format
+msgid "generating %s with %s... "
+msgstr ""
+
+#, c-format
+msgid "success!\n"
+msgstr ""
+
+#, c-format
+msgid "failed.\n"
+msgstr ""
+
+#, c-format
+msgid ":: Retrieving packages from %s...\n"
+msgstr ""
+
+#, c-format
+msgid "checking available disk space...\n"
+msgstr ""
+
+#, c-format
+msgid ":: %s is in IgnorePkg/IgnoreGroup. Install anyway?"
+msgstr ""
+
+#, c-format
+msgid ":: Replace %s with %s/%s?"
+msgstr ""
+
+#, c-format
+msgid ":: %s and %s are in conflict. Remove %s?"
+msgstr ""
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s). Remove %s?"
+msgstr ""
+
+#, c-format
+msgid ""
+":: The following package cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgid_plural ""
+":: The following packages cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "Do you want to skip the above package for this upgrade?"
+msgid_plural "Do you want to skip the above packages for this upgrade?"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid ":: There are %d providers available for %s:\n"
+msgstr ""
+
+#, c-format
+msgid ":: %s-%s: local version is newer. Upgrade anyway?"
+msgstr ""
+
+#, c-format
+msgid ":: File %s is corrupted. Do you want to delete it?"
+msgstr ""
+
+#, c-format
+msgid "installing"
+msgstr ""
+
+#, c-format
+msgid "upgrading"
+msgstr ""
+
+#, c-format
+msgid "removing"
+msgstr ""
+
+#, c-format
+msgid "checking for file conflicts"
+msgstr ""
+
+#, c-format
+msgid "checking available disk space"
+msgstr ""
+
+#, c-format
+msgid "checking package integrity"
+msgstr ""
+
+#, c-format
+msgid "downloading %s...\n"
+msgstr ""
+
+#, c-format
+msgid "malloc failure: could not allocate %zd bytes\n"
+msgstr ""
+
+#, c-format
+msgid "could not get current working directory\n"
+msgstr ""
+
+#, c-format
+msgid "could not chdir to download directory %s\n"
+msgstr ""
+
+#, c-format
+msgid "running XferCommand: fork failed!\n"
+msgstr ""
+
+#, c-format
+msgid "could not change directory to %s (%s)\n"
+msgstr ""
+
+#, c-format
+msgid "invalid value for 'CleanMethod' : '%s'\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"config file %s, line %d: directive '%s' in section '%s' not recognized.\n"
+msgstr ""
+
+#, c-format
+msgid "config file %s, line %d: directive '%s' has invalid value '%s'\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"The mirror '%s' contains the $arch variable, but no Architecture is "
+"defined.\n"
+msgstr ""
+
+#, c-format
+msgid "could not add server URL to database '%s': %s (%s)\n"
+msgstr ""
+
+#, c-format
+msgid "failed to initialize alpm library (%s)\n"
+msgstr ""
+
+#, c-format
+msgid "problem setting logfile '%s' (%s)\n"
+msgstr ""
+
+#, c-format
+msgid "problem setting gpgdir '%s' (%s)\n"
+msgstr ""
+
+#, c-format
+msgid "could not register '%s' database (%s)\n"
+msgstr ""
+
+#, c-format
+msgid "could not set verify option for database '%s' (%s)\n"
+msgstr ""
+
+#, c-format
+msgid "could not add mirror '%s' to database '%s' (%s)\n"
+msgstr ""
+
+#, c-format
+msgid "config parsing exceeded max recursion depth of %d.\n"
+msgstr ""
+
+#, c-format
+msgid "config file %s could not be read.\n"
+msgstr ""
+
+#, c-format
+msgid "config file %s, line %d: bad section name.\n"
+msgstr ""
+
+#, c-format
+msgid "config file %s, line %d: syntax error in config file- missing key.\n"
+msgstr ""
+
+#, c-format
+msgid "config file %s, line %d: All directives must belong to a section.\n"
+msgstr ""
+
+#, c-format
+msgid "config file %s, line %d: directive '%s' needs a value\n"
+msgstr ""
+
+#, c-format
+msgid "no targets specified (use -h for help)\n"
+msgstr ""
+
+#, c-format
+msgid "no install reason specified (use -h for help)\n"
+msgstr ""
+
+#, c-format
+msgid "could not set install reason for package %s (%s)\n"
+msgstr ""
+
+#, c-format
+msgid "%s: install reason has been set to 'installed as dependency'\n"
+msgstr ""
+
+#, c-format
+msgid "%s: install reason has been set to 'explicitly installed'\n"
+msgstr ""
+
+#, c-format
+msgid "Explicitly installed"
+msgstr ""
+
+#, c-format
+msgid "Installed as a dependency for another package"
+msgstr ""
+
+#, c-format
+msgid "Unknown"
+msgstr ""
+
+#, c-format
+msgid "Repository :"
+msgstr ""
+
+#, c-format
+msgid "Name :"
+msgstr ""
+
+#, c-format
+msgid "Version :"
+msgstr ""
+
+#, c-format
+msgid "URL :"
+msgstr ""
+
+#, c-format
+msgid "Licenses :"
+msgstr ""
+
+#, c-format
+msgid "Groups :"
+msgstr ""
+
+#, c-format
+msgid "Provides :"
+msgstr ""
+
+#, c-format
+msgid "Depends On :"
+msgstr ""
+
+#, c-format
+msgid "Optional Deps :"
+msgstr ""
+
+#, c-format
+msgid "Required By :"
+msgstr ""
+
+#, c-format
+msgid "Conflicts With :"
+msgstr ""
+
+#, c-format
+msgid "Replaces :"
+msgstr ""
+
+#, c-format
+msgid "Download Size : %6.2f %s\n"
+msgstr ""
+
+#, c-format
+msgid "Compressed Size: %6.2f %s\n"
+msgstr ""
+
+#, c-format
+msgid "Installed Size : %6.2f %s\n"
+msgstr ""
+
+#, c-format
+msgid "Packager :"
+msgstr ""
+
+#, c-format
+msgid "Architecture :"
+msgstr ""
+
+#, c-format
+msgid "Build Date :"
+msgstr ""
+
+#, c-format
+msgid "Install Date :"
+msgstr ""
+
+#, c-format
+msgid "Install Reason :"
+msgstr ""
+
+#, c-format
+msgid "Install Script :"
+msgstr ""
+
+#, c-format
+msgid "Yes"
+msgstr ""
+
+#, c-format
+msgid "No"
+msgstr ""
+
+#, c-format
+msgid "MD5 Sum :"
+msgstr ""
+
+#, c-format
+msgid "Description :"
+msgstr ""
+
+#, c-format
+msgid "could not calculate checksums for %s\n"
+msgstr ""
+
+#, c-format
+msgid "Backup Files:\n"
+msgstr ""
+
+#, c-format
+msgid "(none)\n"
+msgstr ""
+
+#, c-format
+msgid "no changelog available for '%s'.\n"
+msgstr ""
+
+#, c-format
+msgid "options"
+msgstr ""
+
+#, c-format
+msgid "file(s)"
+msgstr ""
+
+#, c-format
+msgid "package(s)"
+msgstr ""
+
+#, c-format
+msgid "usage"
+msgstr ""
+
+#, c-format
+msgid "operation"
+msgstr ""
+
+#, c-format
+msgid "operations:\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"\n"
+"use '%s {-h --help}' with an operation for available options\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -c, --cascade remove packages and all packages that depend on them\n"
+msgstr ""
+
+#, c-format
+msgid " -n, --nosave remove configuration files\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -s, --recursive remove unnecessary dependencies\n"
+" (-ss includes explicitly installed dependencies)\n"
+msgstr ""
+
+#, c-format
+msgid " -u, --unneeded remove unneeded packages\n"
+msgstr ""
+
+#, c-format
+msgid " -c, --changelog view the changelog of a package\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -d, --deps list packages installed as dependencies [filter]\n"
+msgstr ""
+
+#, c-format
+msgid " -e, --explicit list packages explicitly installed [filter]\n"
+msgstr ""
+
+#, c-format
+msgid " -g, --groups view all members of a package group\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -i, --info view package information (-ii for backup files)\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -k, --check check that the files owned by the package(s) are "
+"present\n"
+msgstr ""
+
+#, c-format
+msgid " -l, --list list the contents of the queried package\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -m, --foreign list installed packages not found in sync db(s) "
+"[filter]\n"
+msgstr ""
+
+#, c-format
+msgid " -o, --owns <file> query the package that owns <file>\n"
+msgstr ""
+
+#, c-format
+msgid " -p, --file <package> query a package file instead of the database\n"
+msgstr ""
+
+#, c-format
+msgid " -q, --quiet show less information for query and search\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -s, --search <regex> search locally-installed packages for matching "
+"strings\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -t, --unrequired list packages not required by any package [filter]\n"
+msgstr ""
+
+#, c-format
+msgid " -u, --upgrades list outdated packages [filter]\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -c, --clean remove old packages from cache directory (-cc for "
+"all)\n"
+msgstr ""
+
+#, c-format
+msgid " -i, --info view package information\n"
+msgstr ""
+
+#, c-format
+msgid " -l, --list <repo> view a list of packages in a repo\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -s, --search <regex> search remote repositories for matching strings\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -u, --sysupgrade upgrade installed packages (-uu allows downgrade)\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -w, --downloadonly download packages but do not install/upgrade "
+"anything\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -y, --refresh download fresh package databases from the server\n"
+msgstr ""
+
+#, c-format
+msgid " --needed don't reinstall up to date packages\n"
+msgstr ""
+
+#, c-format
+msgid " --asdeps mark packages as non-explicitly installed\n"
+msgstr ""
+
+#, c-format
+msgid " --asexplicit mark packages as explicitly installed\n"
+msgstr ""
+
+#, c-format
+msgid " -f, --force force install, overwrite conflicting files\n"
+msgstr ""
+
+#, c-format
+msgid " --asdeps install packages as non-explicitly installed\n"
+msgstr ""
+
+#, c-format
+msgid " --asexplicit install packages as explicitly installed\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" --ignore <pkg> ignore a package upgrade (can be used more than "
+"once)\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" --ignoregroup <grp>\n"
+" ignore a group upgrade (can be used more than once)\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -d, --nodeps skip dependency version checks (-dd to skip all "
+"checks)\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -k, --dbonly only modify database entries, not package files\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" --noprogressbar do not show a progress bar when downloading files\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" --noscriptlet do not execute the install scriptlet if one exists\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" --print print the targets instead of performing the "
+"operation\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" --print-format <string>\n"
+" specify how the targets should be printed\n"
+msgstr ""
+
+#, c-format
+msgid " -b, --dbpath <path> set an alternate database location\n"
+msgstr ""
+
+#, c-format
+msgid " -r, --root <path> set an alternate installation root\n"
+msgstr ""
+
+#, c-format
+msgid " -v, --verbose be verbose\n"
+msgstr ""
+
+#, c-format
+msgid " --arch <arch> set an alternate architecture\n"
+msgstr ""
+
+#, c-format
+msgid " --cachedir <dir> set an alternate package cache location\n"
+msgstr ""
+
+#, c-format
+msgid " --config <path> set an alternate configuration file\n"
+msgstr ""
+
+#, c-format
+msgid " --debug display debug messages\n"
+msgstr ""
+
+#, c-format
+msgid " --gpgdir <path> set an alternate home directory for GnuPG\n"
+msgstr ""
+
+#, c-format
+msgid " --logfile <path> set an alternate log file\n"
+msgstr ""
+
+#, c-format
+msgid " --noconfirm do not ask for any confirmation\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" This program may be freely redistributed under\n"
+" the terms of the GNU General Public License.\n"
+msgstr ""
+
+#, c-format
+msgid "'%s' is not a valid debug level\n"
+msgstr ""
+
+#, c-format
+msgid "only one operation may be used at a time\n"
+msgstr ""
+
+#, c-format
+msgid "invalid option\n"
+msgstr ""
+
+#, c-format
+msgid "buffer overflow detected in arg parsing\n"
+msgstr ""
+
+#, c-format
+msgid "failed to reopen stdin for reading: (%s)\n"
+msgstr ""
+
+#, c-format
+msgid "you cannot perform this operation unless you are root.\n"
+msgstr ""
+
+#, c-format
+msgid "no operation specified (use -h for help)\n"
+msgstr ""
+
+#, c-format
+msgid "%s is owned by %s %s\n"
+msgstr ""
+
+#, c-format
+msgid "no file was specified for --owns\n"
+msgstr ""
+
+#, c-format
+msgid "failed to find '%s' in PATH: %s\n"
+msgstr ""
+
+#, c-format
+msgid "failed to read file '%s': %s\n"
+msgstr ""
+
+#, c-format
+msgid "cannot determine ownership of directory '%s'\n"
+msgstr ""
+
+#, c-format
+msgid "cannot determine real path for '%s': %s\n"
+msgstr ""
+
+#, c-format
+msgid "path too long: %s%s\n"
+msgstr ""
+
+#, c-format
+msgid "No package owns %s\n"
+msgstr ""
+
+#, c-format
+msgid "group \"%s\" was not found\n"
+msgstr ""
+
+#, c-format
+msgid "%s: %d total file, "
+msgid_plural "%s: %d total files, "
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "%d missing file\n"
+msgid_plural "%d missing files\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "no usable package repositories configured.\n"
+msgstr ""
+
+#, c-format
+msgid "package \"%s\" not found\n"
+msgstr ""
+
+#, c-format
+msgid "failed to prepare transaction (%s)\n"
+msgstr ""
+
+#, c-format
+msgid ":: package %s does not have a valid architecture\n"
+msgstr ""
+
+#, c-format
+msgid ":: %s: requires %s\n"
+msgstr ""
+
+#, c-format
+msgid "%s is designated as a HoldPkg.\n"
+msgstr ""
+
+#, c-format
+msgid "HoldPkg was found in target list. Do you want to continue?"
+msgstr ""
+
+#, c-format
+msgid " there is nothing to do\n"
+msgstr ""
+
+#, c-format
+msgid "Do you want to remove these packages?"
+msgstr ""
+
+#, c-format
+msgid "failed to commit transaction (%s)\n"
+msgstr ""
+
+#, c-format
+msgid "could not access database directory\n"
+msgstr ""
+
+#, c-format
+msgid "could not remove %s\n"
+msgstr ""
+
+#, c-format
+msgid "Do you want to remove %s?"
+msgstr ""
+
+#, c-format
+msgid "Database directory: %s\n"
+msgstr ""
+
+#, c-format
+msgid "Do you want to remove unused repositories?"
+msgstr ""
+
+#, c-format
+msgid "Database directory cleaned up\n"
+msgstr ""
+
+#, c-format
+msgid "Cache directory: %s\n"
+msgstr ""
+
+#, c-format
+msgid "Packages to keep:\n"
+msgstr ""
+
+#, c-format
+msgid " All locally installed packages\n"
+msgstr ""
+
+#, c-format
+msgid " All current sync database packages\n"
+msgstr ""
+
+#, c-format
+msgid "Do you want to remove all other packages from cache?"
+msgstr ""
+
+#, c-format
+msgid "removing old packages from cache...\n"
+msgstr ""
+
+#, c-format
+msgid "Do you want to remove ALL files from cache?"
+msgstr ""
+
+#, c-format
+msgid "removing all files from cache...\n"
+msgstr ""
+
+#, c-format
+msgid "could not access cache directory %s\n"
+msgstr ""
+
+#, c-format
+msgid "File %s does not seem to be a valid package, remove it?"
+msgstr ""
+
+#, c-format
+msgid "failed to update %s (%s)\n"
+msgstr ""
+
+#, c-format
+msgid " %s is up to date\n"
+msgstr ""
+
+#, c-format
+msgid "failed to synchronize any databases\n"
+msgstr ""
+
+#, c-format
+msgid "installed"
+msgstr ""
+
+#, c-format
+msgid "repository '%s' does not exist\n"
+msgstr ""
+
+#, c-format
+msgid "package '%s' was not found in repository '%s'\n"
+msgstr ""
+
+#, c-format
+msgid "package '%s' was not found\n"
+msgstr ""
+
+#, c-format
+msgid "repository \"%s\" was not found.\n"
+msgstr ""
+
+#, c-format
+msgid "skipping target: %s\n"
+msgstr ""
+
+#, c-format
+msgid "target not found: %s\n"
+msgstr ""
+
+#, c-format
+msgid ":: There are %d members in group %s:\n"
+msgstr ""
+
+#, c-format
+msgid "database not found: %s\n"
+msgstr ""
+
+#, c-format
+msgid ":: Starting full system upgrade...\n"
+msgstr ""
+
+#, c-format
+msgid ":: %s and %s are in conflict\n"
+msgstr ""
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s)\n"
+msgstr ""
+
+#, c-format
+msgid "Proceed with download?"
+msgstr ""
+
+#, c-format
+msgid "Proceed with installation?"
+msgstr ""
+
+#, c-format
+msgid "%s exists in both '%s' and '%s'\n"
+msgstr ""
+
+#, c-format
+msgid "%s: %s exists in filesystem\n"
+msgstr ""
+
+#, c-format
+msgid "%s is invalid or corrupted\n"
+msgstr ""
+
+#, c-format
+msgid "Errors occurred, no packages were upgraded.\n"
+msgstr ""
+
+#, c-format
+msgid ":: Synchronizing package databases...\n"
+msgstr ""
+
+#, c-format
+msgid ":: The following packages should be upgraded first :\n"
+msgstr ""
+
+#, c-format
+msgid ""
+":: Do you want to cancel the current operation\n"
+":: and upgrade these packages now?"
+msgstr ""
+
+#, c-format
+msgid "failed to init transaction (%s)\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" if you're sure a package manager is not already\n"
+" running, you can remove %s\n"
+msgstr ""
+
+#, c-format
+msgid " try running pacman-db-upgrade\n"
+msgstr ""
+
+#, c-format
+msgid "failed to release transaction (%s)\n"
+msgstr ""
+
+#, c-format
+msgid "None"
+msgstr ""
+
+#, c-format
+msgid "insufficient columns available for table display\n"
+msgstr ""
+
+#, c-format
+msgid "Name"
+msgstr ""
+
+#, c-format
+msgid "Old Version"
+msgstr ""
+
+#, c-format
+msgid "New Version"
+msgstr ""
+
+#, c-format
+msgid "Size"
+msgstr ""
+
+#, c-format
+msgid "Targets (%d):"
+msgstr ""
+
+#, c-format
+msgid "Remove (%d):"
+msgstr ""
+
+#, c-format
+msgid "Total Download Size: %.2f %s\n"
+msgstr ""
+
+#, c-format
+msgid "Total Installed Size: %.2f %s\n"
+msgstr ""
+
+#, c-format
+msgid "Net Upgrade Size: %.2f %s\n"
+msgstr ""
+
+#, c-format
+msgid "Total Removed Size: %.2f %s\n"
+msgstr ""
+
+#, c-format
+msgid "New optional dependencies for %s\n"
+msgstr ""
+
+#, c-format
+msgid "Optional dependencies for %s\n"
+msgstr ""
+
+#, c-format
+msgid "Repository %s\n"
+msgstr ""
+
+#, c-format
+msgid "Invalid value: %d is not between %d and %d\n"
+msgstr ""
+
+#, c-format
+msgid "Invalid number: %s\n"
+msgstr ""
+
+#, c-format
+msgid "Enter a selection (default=all)"
+msgstr ""
+
+#, c-format
+msgid "Enter a number (default=%d)"
+msgstr ""
+
+#, c-format
+msgid "[Y/n]"
+msgstr ""
+
+#, c-format
+msgid "[y/N]"
+msgstr ""
+
+#, c-format
+msgid "Y"
+msgstr ""
+
+#, c-format
+msgid "YES"
+msgstr ""
+
+#, c-format
+msgid "N"
+msgstr ""
+
+#, c-format
+msgid "NO"
+msgstr ""
+
+#, c-format
+msgid "failed to allocate string\n"
+msgstr ""
+
+#, c-format
+msgid "error: %s"
+msgstr ""
+
+#, c-format
+msgid "warning: %s"
+msgstr ""
+
+#, c-format
+msgid "error: "
+msgstr ""
+
+#, c-format
+msgid "warning: "
+msgstr ""
diff --git a/src/pacman/po/pl.po b/src/pacman/po/pl.po
new file mode 100644
index 00000000..256768cd
--- /dev/null
+++ b/src/pacman/po/pl.po
@@ -0,0 +1,1138 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Pacman Development Team <pacman-dev@archlinux.org>
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Arch Linux Pacman package manager\n"
+"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
+"POT-Creation-Date: 2011-06-23 21:59-0500\n"
+"PO-Revision-Date: 2011-04-05 05:39+0000\n"
+"Last-Translator: Barthalion <barthalion@gmail.com>\n"
+"Language-Team: Polish <None>\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2)\n"
+
+#, c-format
+msgid "checking dependencies...\n"
+msgstr "sprawdzanie zależności...\n"
+
+#, c-format
+msgid "checking for file conflicts...\n"
+msgstr "sprawdzanie konfliktów w systemie plików...\n"
+
+#, c-format
+msgid "resolving dependencies...\n"
+msgstr "rozwiązywanie zależności...\n"
+
+#, c-format
+msgid "looking for inter-conflicts...\n"
+msgstr "szukanie konfliktów międzypakietowych...\n"
+
+#, c-format
+msgid "installing %s...\n"
+msgstr "instalowanie %s...\n"
+
+#, c-format
+msgid "removing %s...\n"
+msgstr "usuwanie %s...\n"
+
+#, c-format
+msgid "upgrading %s...\n"
+msgstr "aktualizowanie %s...\n"
+
+#, c-format
+msgid "checking package integrity...\n"
+msgstr "sprawdzanie spójności pakietów...\n"
+
+#, c-format
+msgid "checking delta integrity...\n"
+msgstr "sprawdzanie spójności pakietów przyrostowych...\n"
+
+#, c-format
+msgid "applying deltas...\n"
+msgstr "aplikowanie pakietów przyrostowych...\n"
+
+#, c-format
+msgid "generating %s with %s... "
+msgstr "aktualizowanie %s przez %s... "
+
+#, c-format
+msgid "success!\n"
+msgstr "sukces!\n"
+
+#, c-format
+msgid "failed.\n"
+msgstr "nieudane.\n"
+
+#, c-format
+msgid ":: Retrieving packages from %s...\n"
+msgstr ":: Pobieranie pakietów z %s...\n"
+
+#, c-format
+msgid "checking available disk space...\n"
+msgstr "sprawdzanie dostępnego miejsca na dysku...\n"
+
+#, c-format
+msgid ":: %s is in IgnorePkg/IgnoreGroup. Install anyway?"
+msgstr ":: %s jest w IgnorePkg/IgnoreGroup. Zainstalować mimo tego?"
+
+#, c-format
+msgid ":: Replace %s with %s/%s?"
+msgstr ":: Zastąpić %s przez %s/%s?"
+
+#, c-format
+msgid ":: %s and %s are in conflict. Remove %s?"
+msgstr ":: %s konfliktuje z %s. Usunąć %s?"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s). Remove %s?"
+msgstr ":: %s i %s konfliktują ze sobą (%s). Usunąć %s?"
+
+#, c-format
+msgid ""
+":: The following package cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgid_plural ""
+":: The following packages cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgstr[0] ""
+":: Następujący pakiet nie mógł zostać zaktualizowany w wyniku niespełnionych "
+"zależności:\n"
+msgstr[1] ""
+":: Następujące pakiety nie mogły zostać zaktualizowane w wyniku "
+"niespełnionych zależności:\n"
+msgstr[2] ""
+":: Następujące pakiety nie mogły zostać zaktualizowane w wyniku "
+"niespełnionych zależności:\n"
+
+#, c-format
+msgid "Do you want to skip the above package for this upgrade?"
+msgid_plural "Do you want to skip the above packages for this upgrade?"
+msgstr[0] "Czy chcesz pominąć powyższy pakiet przy aktualizacji?"
+msgstr[1] "Czy chcesz pominąć powyższe pakiety przy aktualizacji?"
+msgstr[2] "Czy chcesz pominąć powyższe pakiety przy aktualizacji?"
+
+#, c-format
+msgid ":: There are %d providers available for %s:\n"
+msgstr ":: Jest dostępnych %d dostawców dla %s:\n"
+
+#, c-format
+msgid ":: %s-%s: local version is newer. Upgrade anyway?"
+msgstr ":: %s-%s: lokalna wersja jest nowsza. Aktualizować pomimo tego?"
+
+#, c-format
+msgid ":: File %s is corrupted. Do you want to delete it?"
+msgstr ":: Plik %s jest uszkodzony. Czy chcesz go usunąć?"
+
+#, c-format
+msgid "installing"
+msgstr "instalowanie"
+
+#, c-format
+msgid "upgrading"
+msgstr "aktualizowanie"
+
+#, c-format
+msgid "removing"
+msgstr "usuwanie"
+
+#, c-format
+msgid "checking for file conflicts"
+msgstr "sprawdzanie konfliktów plików"
+
+#, c-format
+msgid "checking available disk space"
+msgstr "sprawdzanie dostępnego miejsca na dysku"
+
+#, c-format
+msgid "checking package integrity"
+msgstr "sprawdzanie spójności pakietów"
+
+#, c-format
+msgid "downloading %s...\n"
+msgstr "pobieram %s...\n"
+
+#, c-format
+msgid "malloc failure: could not allocate %zd bytes\n"
+msgstr "błąd malloc: nie można zaalokować %zd bajtów\n"
+
+#, c-format
+msgid "could not get current working directory\n"
+msgstr "nie można odnaleźć bieżącego katalogu roboczego\n"
+
+#, c-format
+msgid "could not chdir to download directory %s\n"
+msgstr "nie udało się zmienić katalogu na katalog pobierania %s\n"
+
+#, c-format
+msgid "running XferCommand: fork failed!\n"
+msgstr "uruchamianie XferCommand: fork nieudany!\n"
+
+#, c-format
+msgid "could not change directory to %s (%s)\n"
+msgstr "nie można zmienić katalogu na %s (%s)\n"
+
+#, c-format
+msgid "invalid value for 'CleanMethod' : '%s'\n"
+msgstr "zła wartość dla 'CleanMethod' : '%s'\n"
+
+#, c-format
+msgid ""
+"config file %s, line %d: directive '%s' in section '%s' not recognized.\n"
+msgstr ""
+"plik konfiguracyjny %s, linia %d: dyrektywa '%s' w sekcji '%s' nie "
+"rozpoznana.\n"
+
+#, fuzzy, c-format
+msgid "config file %s, line %d: directive '%s' has invalid value '%s'\n"
+msgstr "plik konfiguracyjny %s, linia %d: wymagana wartość w dyrektywie '%s'\n"
+
+#, c-format
+msgid ""
+"The mirror '%s' contains the $arch variable, but no Architecture is "
+"defined.\n"
+msgstr ""
+"Serwer lustrzany '%s' zawiera zmienną $arch, ale brak zdefiniowanej "
+"architektury.\n"
+
+#, c-format
+msgid "could not add server URL to database '%s': %s (%s)\n"
+msgstr "nie można dodać URL serwera do bazy danych '%s': %s (%s)\n"
+
+#, c-format
+msgid "failed to initialize alpm library (%s)\n"
+msgstr "nie udało się zainicjować biblioteki alpm (%s)\n"
+
+#, c-format
+msgid "problem setting logfile '%s' (%s)\n"
+msgstr "problem przy ustawianiu logfile '%s' (%s)\n"
+
+#, fuzzy, c-format
+msgid "problem setting gpgdir '%s' (%s)\n"
+msgstr "problem przy ustawianiu rootdir '%s' (%s)\n"
+
+#, c-format
+msgid "could not register '%s' database (%s)\n"
+msgstr "nie udało się zarejestrować bazy danych '%s' (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not set verify option for database '%s' (%s)\n"
+msgstr "nie można dodać URL serwera do bazy danych '%s': %s (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not add mirror '%s' to database '%s' (%s)\n"
+msgstr "nie można dodać URL serwera do bazy danych '%s': %s (%s)\n"
+
+#, c-format
+msgid "config parsing exceeded max recursion depth of %d.\n"
+msgstr ""
+
+#, c-format
+msgid "config file %s could not be read.\n"
+msgstr "plik konfiguracyjny %s nie może być odczytany.\n"
+
+#, c-format
+msgid "config file %s, line %d: bad section name.\n"
+msgstr "plik konfiguracyjny %s, linia %d: zła nazwa sekcji.\n"
+
+#, c-format
+msgid "config file %s, line %d: syntax error in config file- missing key.\n"
+msgstr ""
+"plik konfiguracyjny %s, linia %d: błąd składni w pliku - brak klucza.\n"
+
+#, c-format
+msgid "config file %s, line %d: All directives must belong to a section.\n"
+msgstr "plik %s, linia %d: Wszystkie dyrektywy muszą należeć do sekcji.\n"
+
+#, c-format
+msgid "config file %s, line %d: directive '%s' needs a value\n"
+msgstr "plik konfiguracyjny %s, linia %d: wymagana wartość w dyrektywie '%s'\n"
+
+#, c-format
+msgid "no targets specified (use -h for help)\n"
+msgstr "nie podano żadnych celów (użyj -h aby otrzymać pomoc)\n"
+
+#, c-format
+msgid "no install reason specified (use -h for help)\n"
+msgstr "nie podano powodu instalacji (użyj -h aby otrzymać pomoc)\n"
+
+#, c-format
+msgid "could not set install reason for package %s (%s)\n"
+msgstr "nie można ustawić powodu instalacji pakietu %s (%s)\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'installed as dependency'\n"
+msgstr "%s: powód instalacji został ustawiony jako zależność.\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'explicitly installed'\n"
+msgstr "%s: powód instalacji został ustawiony jako ręczny.\n"
+
+#, c-format
+msgid "Explicitly installed"
+msgstr "Zainstalowano na życzenie"
+
+#, c-format
+msgid "Installed as a dependency for another package"
+msgstr "Zainstalowano jako wymóg innej paczki"
+
+#, c-format
+msgid "Unknown"
+msgstr "Nieznane"
+
+#, c-format
+msgid "Repository :"
+msgstr "Repozytorium :"
+
+#, c-format
+msgid "Name :"
+msgstr "Nazwa :"
+
+#, c-format
+msgid "Version :"
+msgstr "Wersja :"
+
+#, c-format
+msgid "URL :"
+msgstr "URL :"
+
+#, c-format
+msgid "Licenses :"
+msgstr "Licencja :"
+
+#, c-format
+msgid "Groups :"
+msgstr "Grupy :"
+
+#, c-format
+msgid "Provides :"
+msgstr "Dostarcza :"
+
+#, c-format
+msgid "Depends On :"
+msgstr "Zależy od :"
+
+#, c-format
+msgid "Optional Deps :"
+msgstr "Opcjonalne zależności:"
+
+#, c-format
+msgid "Required By :"
+msgstr "Wymagane przez :"
+
+#, c-format
+msgid "Conflicts With :"
+msgstr "Konfliktuje z :"
+
+#, c-format
+msgid "Replaces :"
+msgstr "Zastępuje :"
+
+#, fuzzy, c-format
+msgid "Download Size : %6.2f %s\n"
+msgstr "Ilość danych do pobrania: %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Compressed Size: %6.2f %s\n"
+msgstr "Rozmiar skompresowany: %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Installed Size : %6.2f %s\n"
+msgstr "Rozmiar po instalacji : %6.2f K\n"
+
+#, c-format
+msgid "Packager :"
+msgstr "Pakujący :"
+
+#, c-format
+msgid "Architecture :"
+msgstr "Architektura :"
+
+#, c-format
+msgid "Build Date :"
+msgstr "Data budowy :"
+
+#, c-format
+msgid "Install Date :"
+msgstr "Data instalacji :"
+
+#, c-format
+msgid "Install Reason :"
+msgstr "Powód instalacji :"
+
+#, c-format
+msgid "Install Script :"
+msgstr "Skrypt instalacyjny :"
+
+#, c-format
+msgid "Yes"
+msgstr "Tak"
+
+#, c-format
+msgid "No"
+msgstr "Nie"
+
+#, c-format
+msgid "MD5 Sum :"
+msgstr "Suma MD5 :"
+
+#, c-format
+msgid "Description :"
+msgstr "Opis :"
+
+#, c-format
+msgid "could not calculate checksums for %s\n"
+msgstr "nie można obliczyć sum md5 dla %s\n"
+
+#, c-format
+msgid "Backup Files:\n"
+msgstr "Pliki kopii zapasowej:\n"
+
+#, c-format
+msgid "(none)\n"
+msgstr "(żadnych)\n"
+
+#, c-format
+msgid "no changelog available for '%s'.\n"
+msgstr "brak listy zmian dla '%s'.\n"
+
+#, c-format
+msgid "options"
+msgstr "opcje"
+
+#, c-format
+msgid "file(s)"
+msgstr "plik(i)"
+
+#, c-format
+msgid "package(s)"
+msgstr "pakiet(y)"
+
+#, c-format
+msgid "usage"
+msgstr "sposób użycia"
+
+#, c-format
+msgid "operation"
+msgstr "operacja"
+
+#, c-format
+msgid "operations:\n"
+msgstr "operacje:\n"
+
+#, c-format
+msgid ""
+"\n"
+"use '%s {-h --help}' with an operation for available options\n"
+msgstr ""
+"\n"
+"użyj '%s {-h --help}' z daną operacją w celu zobaczenia dostępnych opcji\n"
+
+#, c-format
+msgid ""
+" -c, --cascade remove packages and all packages that depend on them\n"
+msgstr ""
+" -c, --cascade usuwa pakiet i wszystkie pakiety od niego zależne\n"
+
+#, c-format
+msgid " -n, --nosave remove configuration files\n"
+msgstr " -n, --nosave usuwa także pliki konfiguracyjne\n"
+
+#, c-format
+msgid ""
+" -s, --recursive remove unnecessary dependencies\n"
+" (-ss includes explicitly installed dependencies)\n"
+msgstr ""
+" -s, --recursive usuwa także niepotrzebne zależności\n"
+" (-ss zawiera również zależności zainstalowane "
+"ręcznie)\n"
+
+#, c-format
+msgid " -u, --unneeded remove unneeded packages\n"
+msgstr ""
+" -u, --unneeded usuwania niepotrzebne pakiety (to nie zakłóci "
+"działania innych pakietów)\n"
+
+#, c-format
+msgid " -c, --changelog view the changelog of a package\n"
+msgstr " -c, --changelog wyświetla listę zmian dla pakietu\n"
+
+#, c-format
+msgid ""
+" -d, --deps list packages installed as dependencies [filter]\n"
+msgstr ""
+" -d, --deps pokaż pakiety zainstalowane jako zależności [filtr]\n"
+
+#, c-format
+msgid " -e, --explicit list packages explicitly installed [filter]\n"
+msgstr ""
+" -e, --explicit pokaż pakiety zainstalowane na życzenie[filtr]\n"
+
+#, c-format
+msgid " -g, --groups view all members of a package group\n"
+msgstr " -g, --groups wyświetla zawartość grupy pakietów\n"
+
+#, c-format
+msgid ""
+" -i, --info view package information (-ii for backup files)\n"
+msgstr ""
+" -i, --info wyświetla informacje o pakiecie (-ii dla kopii "
+"bezp.)\n"
+
+#, c-format
+msgid ""
+" -k, --check check that the files owned by the package(s) are "
+"present\n"
+msgstr ""
+" -k, --check sprawdź, czy pliki należące do pakietu(ów) są "
+"obecne\n"
+
+#, c-format
+msgid " -l, --list list the contents of the queried package\n"
+msgstr " -l, --list wylistowywuje zawartość pytanego pakietu\n"
+
+#, c-format
+msgid ""
+" -m, --foreign list installed packages not found in sync db(s) "
+"[filter]\n"
+msgstr ""
+" -m, --foreign wylistuj zainstalowane pakiety nie znalezione w "
+"bazach synchronizacji [filtr]\n"
+
+#, c-format
+msgid " -o, --owns <file> query the package that owns <file>\n"
+msgstr " -o, --owns <plik> pyta pakiet zawierającą <plik>\n"
+
+#, c-format
+msgid " -p, --file <package> query a package file instead of the database\n"
+msgstr " -p, --file <pakiet> pyta plik pakietu zamiast bazy danych\n"
+
+#, c-format
+msgid " -q, --quiet show less information for query and search\n"
+msgstr ""
+" -q, --quiet pokazuje mniej informacji dla zapytań i poszukiwań\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search locally-installed packages for matching "
+"strings\n"
+msgstr ""
+" -s, --search <regex> przeszukuje lokalnie zainstalowane pakiety według "
+"pasujących ciągów\n"
+
+#, c-format
+msgid ""
+" -t, --unrequired list packages not required by any package [filter]\n"
+msgstr ""
+" -t, --unrequired pokaż pakiety nie wymagane przez żaden pakiet "
+"[filtr]\n"
+
+#, c-format
+msgid " -u, --upgrades list outdated packages [filter]\n"
+msgstr ""
+" -u, --upgrades wylistuj pakiety które można uaktualnić [filtr]\n"
+
+#, c-format
+msgid ""
+" -c, --clean remove old packages from cache directory (-cc for "
+"all)\n"
+msgstr ""
+" -c, --clean usuwa stare pakiety z katalogu pamięci podręcznej (-"
+"cc dla wszystkich)\n"
+
+#, c-format
+msgid " -i, --info view package information\n"
+msgstr " -i, --info wyświetla informację o pakiecie\n"
+
+#, c-format
+msgid " -l, --list <repo> view a list of packages in a repo\n"
+msgstr " -l, --list <repo> przegląda listę pakietów w repozytorium \n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search remote repositories for matching strings\n"
+msgstr ""
+" -s, --search <regex> przeszukuje zdalne repozytoria według pasujących "
+"ciągów\n"
+
+#, c-format
+msgid ""
+" -u, --sysupgrade upgrade installed packages (-uu allows downgrade)\n"
+msgstr ""
+" -u, --sysupgrade uaktualnia zainstalowane pakiety (-uu pozwala na "
+"dezaktualizację)\n"
+
+#, c-format
+msgid ""
+" -w, --downloadonly download packages but do not install/upgrade "
+"anything\n"
+msgstr ""
+" -w, --downloadonly pobiera jedynie pakiety bez instalacji/uaktualniania "
+"czegokolwiek\n"
+
+#, c-format
+msgid ""
+" -y, --refresh download fresh package databases from the server\n"
+msgstr " -y, --refresh pobiera świeże bazy danych pakietów z serwera\n"
+
+#, c-format
+msgid " --needed don't reinstall up to date packages\n"
+msgstr " --needed nie instaluj ponownie aktualnych pakietów\n"
+
+#, c-format
+msgid " --asdeps mark packages as non-explicitly installed\n"
+msgstr " --asdeps oznacza pakiety jako zależności\n"
+
+#, c-format
+msgid " --asexplicit mark packages as explicitly installed\n"
+msgstr " --asexplicit oznacza pakiety jako zainstalowane ręcznie\n"
+
+#, c-format
+msgid " -f, --force force install, overwrite conflicting files\n"
+msgstr ""
+" -f, --force wymusza instalację, nadpisując konfliktujące pliki\n"
+
+#, c-format
+msgid " --asdeps install packages as non-explicitly installed\n"
+msgstr " --asdeps instaluje pakiety jako zależności\n"
+
+#, c-format
+msgid " --asexplicit install packages as explicitly installed\n"
+msgstr " --asexplicit zainstaluj pakiet jako zainstalowany ręcznie\n"
+
+#, c-format
+msgid ""
+" --ignore <pkg> ignore a package upgrade (can be used more than "
+"once)\n"
+msgstr ""
+" --ignore <pkg> ignoruje uaktualnienie pakietu (może zostać użyte "
+"więcej niż raz)\n"
+
+#, c-format
+msgid ""
+" --ignoregroup <grp>\n"
+" ignore a group upgrade (can be used more than once)\n"
+msgstr ""
+" --ignoregroup <grp>\n"
+" ignoruje uaktualnienie grupy (może zostać użyte "
+"więcej niż raz)\n"
+
+#, c-format
+msgid ""
+" -d, --nodeps skip dependency version checks (-dd to skip all "
+"checks)\n"
+msgstr ""
+" -d, --nodeps pomija sprawdzanie wersji zależności (-dd pomija "
+"wszystkie sprawdzenia)\n"
+
+#, c-format
+msgid ""
+" -k, --dbonly only modify database entries, not package files\n"
+msgstr ""
+" -k, --dbonly modyfikuje tylko wpis w bazie danych, nie pliki "
+"pakietu\n"
+
+#, c-format
+msgid ""
+" --noprogressbar do not show a progress bar when downloading files\n"
+msgstr ""
+" --noprogressbar wyłącza pasek postępu podczas pobierania plików\n"
+
+#, c-format
+msgid ""
+" --noscriptlet do not execute the install scriptlet if one exists\n"
+msgstr ""
+" --noscriptlet nie wykonuje skryptu instalacyjnego jeśli istnieje\n"
+
+#, c-format
+msgid ""
+" --print print the targets instead of performing the "
+"operation\n"
+msgstr ""
+" --print wypisz tylko cele, bez przeprowadzania operacji\n"
+
+#, c-format
+msgid ""
+" --print-format <string>\n"
+" specify how the targets should be printed\n"
+msgstr " --print-format <string>\n"
+
+#, c-format
+msgid " -b, --dbpath <path> set an alternate database location\n"
+msgstr " -b, --dbpath <path> ustawia alternatywną lokalizację bazy danych\n"
+
+#, c-format
+msgid " -r, --root <path> set an alternate installation root\n"
+msgstr " -r, --root <path> ustawia alternatywny cel instalacji\n"
+
+#, c-format
+msgid " -v, --verbose be verbose\n"
+msgstr " -v, --verbose włącza tryb wypisywania szczegółów\n"
+
+#, c-format
+msgid " --arch <arch> set an alternate architecture\n"
+msgstr " --arch <path> ustawia alternatywną architekturę\n"
+
+#, c-format
+msgid " --cachedir <dir> set an alternate package cache location\n"
+msgstr ""
+" --cachedir <dir> ustawia alternatywną lokalizację pliku pamięci "
+"podręcznej (cache) pakietów\n"
+
+#, c-format
+msgid " --config <path> set an alternate configuration file\n"
+msgstr " --config <path> ustawia alternatywny plik konfiguracji\n"
+
+#, c-format
+msgid " --debug display debug messages\n"
+msgstr " --debug włącz debugowanie wiadomości\n"
+
+#, fuzzy, c-format
+msgid " --gpgdir <path> set an alternate home directory for GnuPG\n"
+msgstr " --logfile <path> ustawia alternatywny plik dziennika\n"
+
+#, c-format
+msgid " --logfile <path> set an alternate log file\n"
+msgstr " --logfile <path> ustawia alternatywny plik dziennika\n"
+
+#, c-format
+msgid " --noconfirm do not ask for any confirmation\n"
+msgstr ""
+" --noconfirm nie pyta o potwierdzenie ze strony użytkownika\n"
+
+#, c-format
+msgid ""
+" This program may be freely redistributed under\n"
+" the terms of the GNU General Public License.\n"
+msgstr ""
+" Ten program może być swobodnie rozpowszechniany na\n"
+" zasadach licencji GNU General Public License.\n"
+
+#, c-format
+msgid "'%s' is not a valid debug level\n"
+msgstr "'%s' nie jest ważnym poziomem odpluskwiania\n"
+
+#, c-format
+msgid "only one operation may be used at a time\n"
+msgstr "tylko jedna operacja może być użyta na raz\n"
+
+#, c-format
+msgid "invalid option\n"
+msgstr "nieprawidłowa opcja\n"
+
+#, c-format
+msgid "buffer overflow detected in arg parsing\n"
+msgstr "przepełnienie bufora wykryte przy parsowaniu argumentów\n"
+
+#, c-format
+msgid "failed to reopen stdin for reading: (%s)\n"
+msgstr "nie mozna ponownie otworzyć stdin: (%s)\n"
+
+#, c-format
+msgid "you cannot perform this operation unless you are root.\n"
+msgstr "tą operację wykonać można jedynie jako root.\n"
+
+#, c-format
+msgid "no operation specified (use -h for help)\n"
+msgstr "nie podano żadnej operacji (użyj -h aby otrzymać pomoc)\n"
+
+#, c-format
+msgid "%s is owned by %s %s\n"
+msgstr "%s jest własnością %s %s\n"
+
+#, c-format
+msgid "no file was specified for --owns\n"
+msgstr "nie podano pliku dla --owns\n"
+
+#, c-format
+msgid "failed to find '%s' in PATH: %s\n"
+msgstr "nie udało się znaleźć '%s' w PATH: %s\n"
+
+#, c-format
+msgid "failed to read file '%s': %s\n"
+msgstr "nie udało się odczytać pliku '%s': %s\n"
+
+#, c-format
+msgid "cannot determine ownership of directory '%s'\n"
+msgstr "nie można określić właściciela katalogu '%s'\n"
+
+#, c-format
+msgid "cannot determine real path for '%s': %s\n"
+msgstr "nie można ustalić pełnej ścieżki dla '%s': %s\n"
+
+#, c-format
+msgid "path too long: %s%s\n"
+msgstr "za długa ścieżka: %s%s\n"
+
+#, c-format
+msgid "No package owns %s\n"
+msgstr "Żaden pakiet nie jest właścicielem %s\n"
+
+#, c-format
+msgid "group \"%s\" was not found\n"
+msgstr "grupa \"%s\" nie została znaleziona\n"
+
+#, c-format
+msgid "%s: %d total file, "
+msgid_plural "%s: %d total files, "
+msgstr[0] "%s: %d plik, "
+msgstr[1] "%s: %d pliki, "
+msgstr[2] "%s: %d plików, "
+
+#, c-format
+msgid "%d missing file\n"
+msgid_plural "%d missing files\n"
+msgstr[0] "%d brakujący plik\n"
+msgstr[1] "%d brakujące pliki\n"
+msgstr[2] "%d brakujących plików\n"
+
+#, c-format
+msgid "no usable package repositories configured.\n"
+msgstr "nie skonfigurowano używalnych repozytoriów.\n"
+
+#, c-format
+msgid "package \"%s\" not found\n"
+msgstr "pakiet \"%s\" nie został odnaleziony\n"
+
+#, c-format
+msgid "failed to prepare transaction (%s)\n"
+msgstr "nie udało się przygotować transakcji (%s)\n"
+
+#, c-format
+msgid ":: package %s does not have a valid architecture\n"
+msgstr ":: pakiet %s nie posiada odpowiedniej architektury\n"
+
+#, c-format
+msgid ":: %s: requires %s\n"
+msgstr ":: %s: wymaga %s\n"
+
+#, c-format
+msgid "%s is designated as a HoldPkg.\n"
+msgstr "%s desygnowany jest jako HoldPkg.\n"
+
+#, c-format
+msgid "HoldPkg was found in target list. Do you want to continue?"
+msgstr "HoldPkg został znaleziony na liście celów. Czy chcesz kontynuować?"
+
+#, c-format
+msgid " there is nothing to do\n"
+msgstr "nie ma nic do zrobienia\n"
+
+#, c-format
+msgid "Do you want to remove these packages?"
+msgstr "Czy chcesz usunąć te pakiety?"
+
+#, c-format
+msgid "failed to commit transaction (%s)\n"
+msgstr "nie udało się dokonać transakcji (%s)\n"
+
+#, c-format
+msgid "could not access database directory\n"
+msgstr "brak dostępu do katalogu bazy danych\n"
+
+#, c-format
+msgid "could not remove %s\n"
+msgstr "nie można usunąć %s\n"
+
+#, c-format
+msgid "Do you want to remove %s?"
+msgstr "Czy chcesz usunąć %s?"
+
+#, c-format
+msgid "Database directory: %s\n"
+msgstr "Katalog bazy danych: %s\n"
+
+#, c-format
+msgid "Do you want to remove unused repositories?"
+msgstr "Czy chcesz usunąć nieużywane repozytoria?"
+
+#, c-format
+msgid "Database directory cleaned up\n"
+msgstr "Katalog bazy danych wyczyszczony\n"
+
+#, c-format
+msgid "Cache directory: %s\n"
+msgstr "Katalog pamięci podręcznej : %s\n"
+
+#, c-format
+msgid "Packages to keep:\n"
+msgstr "Pakiety do zachowania:\n"
+
+#, c-format
+msgid " All locally installed packages\n"
+msgstr " Wszystkie pakiety zainstalowane lokalnie\n"
+
+#, c-format
+msgid " All current sync database packages\n"
+msgstr " Wszystkie pakiety z bazy danych\n"
+
+#, c-format
+msgid "Do you want to remove all other packages from cache?"
+msgstr "Czy chcesz usunąć wszystkie inne pakiety z pamięci podręcznej?"
+
+#, c-format
+msgid "removing old packages from cache...\n"
+msgstr "usuwanie starych pakietów z pamięci podręcznej...\n"
+
+#, c-format
+msgid "Do you want to remove ALL files from cache?"
+msgstr "Czy chcesz usunąć WSZYSTKIE pliki z pamięci podręcznej?"
+
+#, c-format
+msgid "removing all files from cache...\n"
+msgstr "usuwanie wszystkich plików z pamięci podręcznej...\n"
+
+#, c-format
+msgid "could not access cache directory %s\n"
+msgstr "brak dostępu do katalogu pamięci podręcznej %s\n"
+
+#, c-format
+msgid "File %s does not seem to be a valid package, remove it?"
+msgstr "Plik %s nie wygląda na poprawny pakiet, usunąć go?"
+
+#, c-format
+msgid "failed to update %s (%s)\n"
+msgstr "nie udało się zaktualizować %s (%s)\n"
+
+#, c-format
+msgid " %s is up to date\n"
+msgstr " %s jest już w najnowszej wersji\n"
+
+#, c-format
+msgid "failed to synchronize any databases\n"
+msgstr "nie udało się zsynchronizować żadnej bazy danych\n"
+
+#, c-format
+msgid "installed"
+msgstr "zainstalowano"
+
+#, c-format
+msgid "repository '%s' does not exist\n"
+msgstr "repozytorium '%s' nie istnieje\n"
+
+#, c-format
+msgid "package '%s' was not found in repository '%s'\n"
+msgstr "pakiet '%s' nie został odnaleziony w repozytorium '%s'\n"
+
+#, c-format
+msgid "package '%s' was not found\n"
+msgstr "pakiet '%s' nie został odnaleziony\n"
+
+#, c-format
+msgid "repository \"%s\" was not found.\n"
+msgstr "repozytorium \"%s\" nie zostało znalezione.\n"
+
+#, c-format
+msgid "skipping target: %s\n"
+msgstr "Pomijam cel: %s\n"
+
+#, c-format
+msgid "target not found: %s\n"
+msgstr "nie znaleziono celu: %s\n"
+
+#, c-format
+msgid ":: There are %d members in group %s:\n"
+msgstr ":: Jest %d pakietów w grupie %s:\n"
+
+#, c-format
+msgid "database not found: %s\n"
+msgstr "nie znaleziono bazy danych: %s\n"
+
+#, c-format
+msgid ":: Starting full system upgrade...\n"
+msgstr ":: Rozpoczynanie pełnej aktualizacji systemu...\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict\n"
+msgstr ":: %s i %s są w konflikcie\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s)\n"
+msgstr ":: %s: konfliktuje z %s (%s)\n"
+
+#, c-format
+msgid "Proceed with download?"
+msgstr "Kontynuować pobieranie?"
+
+#, c-format
+msgid "Proceed with installation?"
+msgstr "Kontynuować instalację?"
+
+#, c-format
+msgid "%s exists in both '%s' and '%s'\n"
+msgstr "%s znajduje się w '%s' i w '%s'\n"
+
+#, c-format
+msgid "%s: %s exists in filesystem\n"
+msgstr "%s: %s znajduje się w systemie plików\n"
+
+#, c-format
+msgid "%s is invalid or corrupted\n"
+msgstr "%s jest zły lub zepsuty\n"
+
+#, c-format
+msgid "Errors occurred, no packages were upgraded.\n"
+msgstr "Wystąpiły błędy, nie zaktualizowano żadnego pakietu.\n"
+
+#, c-format
+msgid ":: Synchronizing package databases...\n"
+msgstr ":: Synchronizowanie baz danych z pakietami...\n"
+
+#, c-format
+msgid ":: The following packages should be upgraded first :\n"
+msgstr ":: Następujące pakiety powinny być zaktualizowane najpierw :\n"
+
+#, c-format
+msgid ""
+":: Do you want to cancel the current operation\n"
+":: and upgrade these packages now?"
+msgstr ""
+":: Czy chcesz anulować obecną operację\n"
+":: i zaktualizować te pakiety teraz?"
+
+#, c-format
+msgid "failed to init transaction (%s)\n"
+msgstr "nie udało się zainicjować transakcji (%s)\n"
+
+#, c-format
+msgid ""
+" if you're sure a package manager is not already\n"
+" running, you can remove %s\n"
+msgstr ""
+" jeśli jesteś pewien, że menedżer pakietów nie jest\n"
+" już uruchomiony, możesz usunąć %s.\n"
+
+#, c-format
+msgid " try running pacman-db-upgrade\n"
+msgstr " spróbuj uruchomić pacman-db-upgrade\n"
+
+#, c-format
+msgid "failed to release transaction (%s)\n"
+msgstr "nie udało się wyswobodzić transakcji (%s)\n"
+
+#, c-format
+msgid "None"
+msgstr "Żadnych"
+
+#, c-format
+msgid "insufficient columns available for table display\n"
+msgstr ""
+
+#, c-format
+msgid "Name"
+msgstr ""
+
+#, c-format
+msgid "Old Version"
+msgstr ""
+
+#, c-format
+msgid "New Version"
+msgstr ""
+
+#, c-format
+msgid "Size"
+msgstr ""
+
+#, c-format
+msgid "Targets (%d):"
+msgstr "Cele (%d):"
+
+#, c-format
+msgid "Remove (%d):"
+msgstr "Usunąć (%d):"
+
+#, fuzzy, c-format
+msgid "Total Download Size: %.2f %s\n"
+msgstr "Całkowity rozmiar do pobrania: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Installed Size: %.2f %s\n"
+msgstr "Całkowity rozmiar po instalacji: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Net Upgrade Size: %.2f %s\n"
+msgstr "Całkowity rozmiar do pobrania: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Removed Size: %.2f %s\n"
+msgstr "Całkowity rozmiar do usunięcia: %.2f MB\n"
+
+#, c-format
+msgid "New optional dependencies for %s\n"
+msgstr "Nowe opcjonalne zależności dla %s\n"
+
+#, c-format
+msgid "Optional dependencies for %s\n"
+msgstr "Opcjonalne zależności dla %s\n"
+
+#, c-format
+msgid "Repository %s\n"
+msgstr "Repozytorium %s\n"
+
+#, c-format
+msgid "Invalid value: %d is not between %d and %d\n"
+msgstr "Nieprawidłowa wartość: %d nie jest pomiędzy %d i %d\n"
+
+#, c-format
+msgid "Invalid number: %s\n"
+msgstr "Nieprawidłowy numer: %s\n"
+
+#, c-format
+msgid "Enter a selection (default=all)"
+msgstr "Wybierz pakiety (domyślnie=wszystkie)"
+
+#, c-format
+msgid "Enter a number (default=%d)"
+msgstr "Podaj numer (domyślnie=%d)"
+
+#, c-format
+msgid "[Y/n]"
+msgstr "[T/n]"
+
+#, c-format
+msgid "[y/N]"
+msgstr "[t/N]"
+
+#, c-format
+msgid "Y"
+msgstr "T"
+
+#, c-format
+msgid "YES"
+msgstr "TAK"
+
+#, c-format
+msgid "N"
+msgstr "N"
+
+#, c-format
+msgid "NO"
+msgstr "NIE"
+
+#, c-format
+msgid "failed to allocate string\n"
+msgstr "nie można wyznaczyć łańcucha\n"
+
+#, c-format
+msgid "error: %s"
+msgstr "błąd: %s"
+
+#, c-format
+msgid "warning: %s"
+msgstr "ostrzeżenie: %s"
+
+#, c-format
+msgid "error: "
+msgstr "błąd: "
+
+#, c-format
+msgid "warning: "
+msgstr "ostrzeżenie: "
+
diff --git a/src/pacman/po/pt.po b/src/pacman/po/pt.po
new file mode 100644
index 00000000..753b5b45
--- /dev/null
+++ b/src/pacman/po/pt.po
@@ -0,0 +1,1167 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Pacman Development Team <pacman-dev@archlinux.org>
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Arch Linux Pacman package manager\n"
+"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
+"POT-Creation-Date: 2011-06-23 21:59-0500\n"
+"PO-Revision-Date: 2011-04-16 12:23+0000\n"
+"Last-Translator: ArchGalileu <omeuviolino@gmail.com>\n"
+"Language-Team: Portuguese <>\n"
+"Language: pt\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"
+
+#, c-format
+msgid "checking dependencies...\n"
+msgstr "a verificar dependências...\n"
+
+#, c-format
+msgid "checking for file conflicts...\n"
+msgstr "a verificar conflitos nos ficheiros...\n"
+
+#, c-format
+msgid "resolving dependencies...\n"
+msgstr "a resolver dependências...\n"
+
+#, c-format
+msgid "looking for inter-conflicts...\n"
+msgstr "a procurar por conflitos internos...\n"
+
+#, c-format
+msgid "installing %s...\n"
+msgstr "a instalar %s...\n"
+
+#, c-format
+msgid "removing %s...\n"
+msgstr "a remover %s...\n"
+
+#, c-format
+msgid "upgrading %s...\n"
+msgstr "a actualizar %s...\n"
+
+#, c-format
+msgid "checking package integrity...\n"
+msgstr "a verificar a integridade do pacote...\n"
+
+#, c-format
+msgid "checking delta integrity...\n"
+msgstr "a verificar a integridade delta...\n"
+
+#, c-format
+msgid "applying deltas...\n"
+msgstr "a aplicar deltas...\n"
+
+#, c-format
+msgid "generating %s with %s... "
+msgstr "a gerar %s com %s... "
+
+#, c-format
+msgid "success!\n"
+msgstr "sucesso!\n"
+
+#, c-format
+msgid "failed.\n"
+msgstr "falhou.\n"
+
+#, c-format
+msgid ":: Retrieving packages from %s...\n"
+msgstr ":: A obter pacotes de %s...\n"
+
+#, c-format
+msgid "checking available disk space...\n"
+msgstr "a verificar espaço disponível no disco...\n"
+
+#, c-format
+msgid ":: %s is in IgnorePkg/IgnoreGroup. Install anyway?"
+msgstr ""
+":: %s está no Pacotes Ignorados/Grupos Ignorados. Instalar mesmo assim?"
+
+#, c-format
+msgid ":: Replace %s with %s/%s?"
+msgstr ":: Substituir %s por %s/%s?"
+
+#, c-format
+msgid ":: %s and %s are in conflict. Remove %s?"
+msgstr ":: %s e %s estão em conflito. Remover %s?"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s). Remove %s?"
+msgstr ":: %s e %s estão em conflito (%s). Remover %s?"
+
+#, c-format
+msgid ""
+":: The following package cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgid_plural ""
+":: The following packages cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgstr[0] ""
+":: O seguinte pacote não pode ser actualizado devido a dependências não "
+"resolvidas:\n"
+msgstr[1] ""
+":: Os seguintes pacotes não pode ser actualizados devido a dependências não "
+"resolvidas:\n"
+
+#, c-format
+msgid "Do you want to skip the above package for this upgrade?"
+msgid_plural "Do you want to skip the above packages for this upgrade?"
+msgstr[0] "Deseja ignorar o pacote acima para esta atualização?"
+msgstr[1] "Deseja ignorar os pacotes acima para esta atualização?"
+
+#, c-format
+msgid ":: There are %d providers available for %s:\n"
+msgstr ":: Existem %d provedores disponíveis para %s:\n"
+
+#, c-format
+msgid ":: %s-%s: local version is newer. Upgrade anyway?"
+msgstr ""
+":: %s-%s: a versão local é mais recente. Deseja actualizar mesmo assim?"
+
+#, c-format
+msgid ":: File %s is corrupted. Do you want to delete it?"
+msgstr ":: O ficheiro %s está corrompido. Deseja excluí-lo?"
+
+#, c-format
+msgid "installing"
+msgstr "a instalar"
+
+#, c-format
+msgid "upgrading"
+msgstr "a actualizar"
+
+#, c-format
+msgid "removing"
+msgstr "a remover"
+
+#, c-format
+msgid "checking for file conflicts"
+msgstr "a verificar conflitos em ficheiros"
+
+#, c-format
+msgid "checking available disk space"
+msgstr "a verificar espaço disponível no disco"
+
+#, c-format
+msgid "checking package integrity"
+msgstr "a verificar integridade dos pacotes"
+
+#, c-format
+msgid "downloading %s...\n"
+msgstr "a descarregar %s...\n"
+
+#, c-format
+msgid "malloc failure: could not allocate %zd bytes\n"
+msgstr "falha malloc: não foi possível fixar %zd bytes\n"
+
+#, c-format
+msgid "could not get current working directory\n"
+msgstr "não foi possível saber a directoria actual\n"
+
+#, c-format
+msgid "could not chdir to download directory %s\n"
+msgstr "não foi possível enviar um chdir ao diretório de download %s\n"
+
+#, c-format
+msgid "running XferCommand: fork failed!\n"
+msgstr "a executar XferCommand: erro no fork!\n"
+
+#, c-format
+msgid "could not change directory to %s (%s)\n"
+msgstr "não foi possível mudar para a directoria %s (%s)\n"
+
+#, c-format
+msgid "invalid value for 'CleanMethod' : '%s'\n"
+msgstr "valor inválido para 'CleanMethod' : '%s'\n"
+
+#, c-format
+msgid ""
+"config file %s, line %d: directive '%s' in section '%s' not recognized.\n"
+msgstr ""
+"ficheiro de configuração %s, linha %d: directiva '%s' na secção '%s' não "
+"reconhecida.\n"
+
+#, fuzzy, c-format
+msgid "config file %s, line %d: directive '%s' has invalid value '%s'\n"
+msgstr "no ficheiro de configuração %s, linha %d: '%s' necessita um valor\n"
+
+#, c-format
+msgid ""
+"The mirror '%s' contains the $arch variable, but no Architecture is "
+"defined.\n"
+msgstr "O mirror %s contém a variável $arch, mas não define a arquitectura.\n"
+
+#, c-format
+msgid "could not add server URL to database '%s': %s (%s)\n"
+msgstr "não foi possível registrar a URL da base de dados '%s': %s (%s)\n"
+
+#, c-format
+msgid "failed to initialize alpm library (%s)\n"
+msgstr "falha ao iniciar a biblioteca alpm (%s)\n"
+
+#, c-format
+msgid "problem setting logfile '%s' (%s)\n"
+msgstr "problema ao configurar logfile '%s' (%s)\n"
+
+#, fuzzy, c-format
+msgid "problem setting gpgdir '%s' (%s)\n"
+msgstr "problema ao configurar rootdir '%s' (%s)\n"
+
+#, c-format
+msgid "could not register '%s' database (%s)\n"
+msgstr "não foi possível registrar a base de dados '%s' (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not set verify option for database '%s' (%s)\n"
+msgstr "não foi possível registrar a URL da base de dados '%s': %s (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not add mirror '%s' to database '%s' (%s)\n"
+msgstr "não foi possível registrar a URL da base de dados '%s': %s (%s)\n"
+
+#, c-format
+msgid "config parsing exceeded max recursion depth of %d.\n"
+msgstr ""
+
+#, c-format
+msgid "config file %s could not be read.\n"
+msgstr "ficheiro de configuração %s ilegível.\n"
+
+#, c-format
+msgid "config file %s, line %d: bad section name.\n"
+msgstr "ficheiro de configuração %s, linha %d: nome de secção inválido.\n"
+
+#, c-format
+msgid "config file %s, line %d: syntax error in config file- missing key.\n"
+msgstr ""
+"ficheiro de configuração %s, linha %d: erro de sintaxe no ficheiro de "
+"configuração - chave em falta.\n"
+
+#, c-format
+msgid "config file %s, line %d: All directives must belong to a section.\n"
+msgstr ""
+"ficheiro de configuração %s, linha %d: Todas as instruções devem pertencer a "
+"uma secção.\n"
+
+#, c-format
+msgid "config file %s, line %d: directive '%s' needs a value\n"
+msgstr "no ficheiro de configuração %s, linha %d: '%s' necessita um valor\n"
+
+#, c-format
+msgid "no targets specified (use -h for help)\n"
+msgstr "nenhum alvo definido (use -h para obter ajuda)\n"
+
+#, c-format
+msgid "no install reason specified (use -h for help)\n"
+msgstr ""
+"não foi especificada nenhuma razão para a instalação (use -h para ajuda)\n"
+
+#, c-format
+msgid "could not set install reason for package %s (%s)\n"
+msgstr "não foi possível definir a razão de instalação para o pacote %s (%s)\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'installed as dependency'\n"
+msgstr "%s: razão de instalação definida para \"instalado como dependência\"\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'explicitly installed'\n"
+msgstr "%s: razão de instalação definida para \"instalado explicitamente\"\n"
+
+#, c-format
+msgid "Explicitly installed"
+msgstr "Explicitamente instalado"
+
+#, c-format
+msgid "Installed as a dependency for another package"
+msgstr "Instalado como dependência de outro pacote"
+
+#, c-format
+msgid "Unknown"
+msgstr "Desconhecido"
+
+#, c-format
+msgid "Repository :"
+msgstr "Repositório :"
+
+#, c-format
+msgid "Name :"
+msgstr "Nome :"
+
+#, c-format
+msgid "Version :"
+msgstr "Versão :"
+
+#, c-format
+msgid "URL :"
+msgstr "Endereço :"
+
+#, c-format
+msgid "Licenses :"
+msgstr "Licenças :"
+
+#, c-format
+msgid "Groups :"
+msgstr "Grupos :"
+
+#, c-format
+msgid "Provides :"
+msgstr "Fornece :"
+
+#, c-format
+msgid "Depends On :"
+msgstr "Depende de :"
+
+#, c-format
+msgid "Optional Deps :"
+msgstr "Dep. Opcionais :"
+
+#, c-format
+msgid "Required By :"
+msgstr "Exigido por :"
+
+#, c-format
+msgid "Conflicts With :"
+msgstr "Conflitos com :"
+
+#, c-format
+msgid "Replaces :"
+msgstr "Substitui :"
+
+#, fuzzy, c-format
+msgid "Download Size : %6.2f %s\n"
+msgstr "Tamanho da Descarga : %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Compressed Size: %6.2f %s\n"
+msgstr "Tamanho Comprimido : %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Installed Size : %6.2f %s\n"
+msgstr "Tamanho Instalado : %6.2f K\n"
+
+#, c-format
+msgid "Packager :"
+msgstr "Empacotador :"
+
+#, c-format
+msgid "Architecture :"
+msgstr "Arquitectura :"
+
+#, c-format
+msgid "Build Date :"
+msgstr "Data da Compilação :"
+
+#, c-format
+msgid "Install Date :"
+msgstr "Data da Instalação :"
+
+#, c-format
+msgid "Install Reason :"
+msgstr "Motivo da instalação :"
+
+#, c-format
+msgid "Install Script :"
+msgstr "Script de Instalação :"
+
+#, c-format
+msgid "Yes"
+msgstr "Sim"
+
+#, c-format
+msgid "No"
+msgstr "Não"
+
+#, c-format
+msgid "MD5 Sum :"
+msgstr "Soma MD5 :"
+
+#, c-format
+msgid "Description :"
+msgstr "Descrição :"
+
+#, c-format
+msgid "could not calculate checksums for %s\n"
+msgstr "não foi possível calcular os checksums para %s\n"
+
+#, c-format
+msgid "Backup Files:\n"
+msgstr "Ficheiros em Cópia de Segurança :\n"
+
+#, c-format
+msgid "(none)\n"
+msgstr "(nenhum)\n"
+
+#, c-format
+msgid "no changelog available for '%s'.\n"
+msgstr "nenhum changelog disponível para '%s'.\n"
+
+#, c-format
+msgid "options"
+msgstr "opções"
+
+#, c-format
+msgid "file(s)"
+msgstr "ficheiro(s)"
+
+#, c-format
+msgid "package(s)"
+msgstr "pacote(s)"
+
+#, c-format
+msgid "usage"
+msgstr "uso"
+
+#, c-format
+msgid "operation"
+msgstr "operação"
+
+#, c-format
+msgid "operations:\n"
+msgstr "operações:\n"
+
+#, c-format
+msgid ""
+"\n"
+"use '%s {-h --help}' with an operation for available options\n"
+msgstr ""
+"\n"
+"use '%s --help' com uma operação para visualizar as opções disponíveis\n"
+
+#, c-format
+msgid ""
+" -c, --cascade remove packages and all packages that depend on them\n"
+msgstr ""
+" -c, --cascade remover pacotes e todos os pacotes que dependem "
+"deles\n"
+
+#, c-format
+msgid " -n, --nosave remove configuration files\n"
+msgstr " -n, --nosave remove os ficheiros de configuração\n"
+
+#, c-format
+msgid ""
+" -s, --recursive remove unnecessary dependencies\n"
+" (-ss includes explicitly installed dependencies)\n"
+msgstr ""
+" -s, --recursive remove as dependências desnecessárias\n"
+" (-ss inclui dependências instaladas explicitamente)\n"
+
+#, c-format
+msgid " -u, --unneeded remove unneeded packages\n"
+msgstr " -u, --desnecessário remover aplicações desnecessáras\n"
+
+#, c-format
+msgid " -c, --changelog view the changelog of a package\n"
+msgstr " -c, --changelog visualizar o changelog de um pacote\n"
+
+#, c-format
+msgid ""
+" -d, --deps list packages installed as dependencies [filter]\n"
+msgstr ""
+" -d, --deps listar os pacotes instalados como "
+"dependências [filtro] \n"
+
+#, c-format
+msgid " -e, --explicit list packages explicitly installed [filter]\n"
+msgstr ""
+" -e, --explicit listar os pacotes explicitamente instalados "
+"[filtro]\n"
+
+#, c-format
+msgid " -g, --groups view all members of a package group\n"
+msgstr ""
+" -g, --groups visualizar todos os membros de um grupo de "
+"pacotes\n"
+
+#, c-format
+msgid ""
+" -i, --info view package information (-ii for backup files)\n"
+msgstr ""
+" -i, --info visualizar informações do pacote (-ii "
+"para ficheiros em cópia de segurança)\n"
+
+#, c-format
+msgid ""
+" -k, --check check that the files owned by the package(s) are "
+"present\n"
+msgstr ""
+" -k, --check verificar se os ficheiros do(s) pacote(s) "
+"estão presentes\n"
+
+#, c-format
+msgid " -l, --list list the contents of the queried package\n"
+msgstr ""
+" -l, --list listar o conteúdo do pacote "
+"consultado\n"
+
+#, c-format
+msgid ""
+" -m, --foreign list installed packages not found in sync db(s) "
+"[filter]\n"
+msgstr ""
+" -m, --foreign listar o(s) pacotes instalado(s) não "
+"encontrado(s) na(s) base(s) de dados sincronizada(s) [filtro]\n"
+
+#, c-format
+msgid " -o, --owns <file> query the package that owns <file>\n"
+msgstr " -o, --owns <arquivo> consultar qual o pacote que contém <arquivo>\n"
+
+#, c-format
+msgid " -p, --file <package> query a package file instead of the database\n"
+msgstr ""
+" -p, --file <pacote> consultar um ficheiro do pacote em vez da base "
+"de dados\n"
+
+#, c-format
+msgid " -q, --quiet show less information for query and search\n"
+msgstr ""
+" -q, --quiet mostrar menos informações nas consultas e "
+"pesquisas\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search locally-installed packages for matching "
+"strings\n"
+msgstr ""
+" -s, --search <regex> pesquisar as palavras correspondentes nos pacotes "
+"instalados\n"
+
+#, c-format
+msgid ""
+" -t, --unrequired list packages not required by any package [filter]\n"
+msgstr ""
+" -t, --unrequired listar pacotes desnecessários por qualquer "
+"outropacote [filtro]\n"
+
+#, c-format
+msgid " -u, --upgrades list outdated packages [filter]\n"
+msgstr ""
+" -u, --upgrades listar todos os pacotes desactualizados "
+"[filtro]\n"
+
+#, c-format
+msgid ""
+" -c, --clean remove old packages from cache directory (-cc for "
+"all)\n"
+msgstr ""
+" -c, --clean remover pacotes antigos do diretório de "
+"cache (usar -cc para remover todos)\n"
+
+#, c-format
+msgid " -i, --info view package information\n"
+msgstr ""
+" -i, --info visualizar as informações do pacote\n"
+
+#, c-format
+msgid " -l, --list <repo> view a list of packages in a repo\n"
+msgstr ""
+" -l, --list <repo> visualizat a lista dos pacotes num "
+"repositório\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search remote repositories for matching strings\n"
+msgstr ""
+" -s, --search <regex> pesquisar repositórios remotos palavras "
+"correspondentes\n"
+
+#, c-format
+msgid ""
+" -u, --sysupgrade upgrade installed packages (-uu allows downgrade)\n"
+msgstr ""
+" -u, --sysupgrade actualizar os pacotes instalados (-uu permite "
+"desactualizar)\n"
+
+#, c-format
+msgid ""
+" -w, --downloadonly download packages but do not install/upgrade "
+"anything\n"
+msgstr ""
+" -w, --downloadonly baixar os pacotes mas não instalar/actualizar "
+"nenhum\n"
+
+#, c-format
+msgid ""
+" -y, --refresh download fresh package databases from the server\n"
+msgstr ""
+" -y, --refresh actualizar a base de dados de pacotes a "
+"partir do servidor\n"
+
+#, c-format
+msgid " --needed don't reinstall up to date packages\n"
+msgstr " --needed não reinstalar pacotes actualizados\n"
+
+#, c-format
+msgid " --asdeps mark packages as non-explicitly installed\n"
+msgstr ""
+" --asdeps marcar o(s) pacote(s) como não-"
+"explicitamente instalado(s)\n"
+
+#, c-format
+msgid " --asexplicit mark packages as explicitly installed\n"
+msgstr ""
+" --asexplicit marcar o(s) pacote(s) como explicitamente "
+"instalado(s)\n"
+
+#, c-format
+msgid " -f, --force force install, overwrite conflicting files\n"
+msgstr ""
+" -f, --force forçar instalação, sobrescrever ficheiros "
+"em conflito\n"
+
+#, c-format
+msgid " --asdeps install packages as non-explicitly installed\n"
+msgstr ""
+" --asdeps instalar pacotes como não-explicitamente "
+"instalados\n"
+
+#, c-format
+msgid " --asexplicit install packages as explicitly installed\n"
+msgstr ""
+" --asexplicit instalar pacotes como explicitamente "
+"instalados\n"
+
+#, c-format
+msgid ""
+" --ignore <pkg> ignore a package upgrade (can be used more than "
+"once)\n"
+msgstr ""
+" --ignore <pkg> ignorar a actualização de um pacote (pode ser "
+"usado mais de uma vez)\n"
+
+#, c-format
+msgid ""
+" --ignoregroup <grp>\n"
+" ignore a group upgrade (can be used more than once)\n"
+msgstr ""
+" --ignoregroup <grp>\n"
+" ignorar a actualização de um grupo "
+"(pode ser usado mais de uma vez)\n"
+
+#, c-format
+msgid ""
+" -d, --nodeps skip dependency version checks (-dd to skip all "
+"checks)\n"
+msgstr ""
+" -d, --dependnao ignorar verificação de dependências (-dd para "
+"ignorar todas as verificações)\n"
+
+#, c-format
+msgid ""
+" -k, --dbonly only modify database entries, not package files\n"
+msgstr ""
+" -k, --dbonly only modify database entries, not package files\n"
+
+#, c-format
+msgid ""
+" --noprogressbar do not show a progress bar when downloading files\n"
+msgstr ""
+" --noprogressbar não mostrar a barra de progresso enquanto "
+"descarrega os ficheiros\n"
+
+#, c-format
+msgid ""
+" --noscriptlet do not execute the install scriptlet if one exists\n"
+msgstr ""
+" --noscriptlet não executar o script de instalação se o "
+"mesmo existir\n"
+
+#, c-format
+msgid ""
+" --print print the targets instead of performing the "
+"operation\n"
+msgstr ""
+" --mostrar mostrar as aplicações alvo em vez de executar a "
+"operação\n"
+
+#, c-format
+msgid ""
+" --print-format <string>\n"
+" specify how the targets should be printed\n"
+msgstr ""
+" --print-format <string>\n"
+" especificar como os pacotes alvo devem "
+"ser visualizados\n"
+
+#, c-format
+msgid " -b, --dbpath <path> set an alternate database location\n"
+msgstr ""
+" -b, --dbpath <path> definir uma localização diferente para a base de "
+"dados\n"
+
+#, c-format
+msgid " -r, --root <path> set an alternate installation root\n"
+msgstr ""
+" -r, --root <path> definir uma localização raiz diferente para a "
+"instalação\n"
+
+#, c-format
+msgid " -v, --verbose be verbose\n"
+msgstr " -v, --verbose ver informações detalhadas adicionais\n"
+
+#, c-format
+msgid " --arch <arch> set an alternate architecture\n"
+msgstr " --arch <arquitetura> definir uma arquitectura diferente\n"
+
+#, c-format
+msgid " --cachedir <dir> set an alternate package cache location\n"
+msgstr ""
+" --cachedir <dir> definir uma localização diferente para a cache "
+"de pacotes\n"
+
+#, c-format
+msgid " --config <path> set an alternate configuration file\n"
+msgstr ""
+" --config <path> definir um ficheiro de configuração alternativo\n"
+
+#, c-format
+msgid " --debug display debug messages\n"
+msgstr " --debug mostrar mensagens de debug\n"
+
+#, fuzzy, c-format
+msgid " --gpgdir <path> set an alternate home directory for GnuPG\n"
+msgstr " --logfile <path> definir um ficheiro de log alternativo\n"
+
+#, c-format
+msgid " --logfile <path> set an alternate log file\n"
+msgstr " --logfile <path> definir um ficheiro de log alternativo\n"
+
+#, c-format
+msgid " --noconfirm do not ask for any confirmation\n"
+msgstr " --noconfirm não pedir nenhuma confirmação\n"
+
+#, c-format
+msgid ""
+" This program may be freely redistributed under\n"
+" the terms of the GNU General Public License.\n"
+msgstr ""
+" Este programa pode ser redistribuído livremente sob\n"
+" os termos da GNU General Public License\n"
+
+#, c-format
+msgid "'%s' is not a valid debug level\n"
+msgstr "'%s' não é um nível de depuração válido\n"
+
+#, c-format
+msgid "only one operation may be used at a time\n"
+msgstr "somente uma operação pode ser usada de cada vez\n"
+
+#, c-format
+msgid "invalid option\n"
+msgstr "Opção inválida\n"
+
+#, c-format
+msgid "buffer overflow detected in arg parsing\n"
+msgstr "buffer overflow detectado no processamento de argumentos\n"
+
+#, c-format
+msgid "failed to reopen stdin for reading: (%s)\n"
+msgstr "falha ao reabrir o stdin para leitura: (%s)\n"
+
+#, c-format
+msgid "you cannot perform this operation unless you are root.\n"
+msgstr "não pode realizar esta operação a menos que seja o root.\n"
+
+#, c-format
+msgid "no operation specified (use -h for help)\n"
+msgstr "nenhuma operação definida (use -h para obter ajuda)\n"
+
+#, c-format
+msgid "%s is owned by %s %s\n"
+msgstr "%s pertence a %s %s\n"
+
+#, c-format
+msgid "no file was specified for --owns\n"
+msgstr "nenhum ficheiro foi especificado para --owns\n"
+
+#, c-format
+msgid "failed to find '%s' in PATH: %s\n"
+msgstr "falhou na procura de '%s' no PATH: %s\n"
+
+#, c-format
+msgid "failed to read file '%s': %s\n"
+msgstr "falhou ao ler o ficheiro '%s': %s\n"
+
+#, c-format
+msgid "cannot determine ownership of directory '%s'\n"
+msgstr "não foi possível determinar o proprietário da directoria '%s'\n"
+
+#, c-format
+msgid "cannot determine real path for '%s': %s\n"
+msgstr "não é possível determinar a localização real para '%s': %s\n"
+
+#, c-format
+msgid "path too long: %s%s\n"
+msgstr "caminho demasiado longo: %s%s\n"
+
+#, c-format
+msgid "No package owns %s\n"
+msgstr "Nenhum pacote possui %s\n"
+
+#, c-format
+msgid "group \"%s\" was not found\n"
+msgstr "o grupo \"%s\" não foi encontrado\n"
+
+#, c-format
+msgid "%s: %d total file, "
+msgid_plural "%s: %d total files, "
+msgstr[0] "%s: %d ficheiro completo, "
+msgstr[1] "%s: %d ficheiros completos, "
+
+#, c-format
+msgid "%d missing file\n"
+msgid_plural "%d missing files\n"
+msgstr[0] "em falta %d ficheiro\n"
+msgstr[1] "em falta %d ficheiros\n"
+
+#, c-format
+msgid "no usable package repositories configured.\n"
+msgstr ""
+"nenhum repositório de pacotes utilizável foi configurado corretamente.\n"
+
+#, c-format
+msgid "package \"%s\" not found\n"
+msgstr "pacote \"%s\" não encontrado\n"
+
+#, c-format
+msgid "failed to prepare transaction (%s)\n"
+msgstr "falhou ao preparar a transação (%s)\n"
+
+#, c-format
+msgid ":: package %s does not have a valid architecture\n"
+msgstr ":: pacote '%s' não possui uma arquitectura válida\n"
+
+#, c-format
+msgid ":: %s: requires %s\n"
+msgstr ":: %s: exige %s\n"
+
+#, c-format
+msgid "%s is designated as a HoldPkg.\n"
+msgstr "%s está marcado como um/a HoldPkg.\n"
+
+#, c-format
+msgid "HoldPkg was found in target list. Do you want to continue?"
+msgstr "Pacotes em HoldPkg foram encontrados na lista. Deseja continuar?"
+
+#, c-format
+msgid " there is nothing to do\n"
+msgstr " nada a fazer\n"
+
+#, c-format
+msgid "Do you want to remove these packages?"
+msgstr "Deseja remover estes pacotes?"
+
+#, c-format
+msgid "failed to commit transaction (%s)\n"
+msgstr "falhou ao submeter a transação (%s)\n"
+
+#, c-format
+msgid "could not access database directory\n"
+msgstr "sem acesso ao diretório da base de dados\n"
+
+#, c-format
+msgid "could not remove %s\n"
+msgstr "não foi possível remover %s\n"
+
+#, c-format
+msgid "Do you want to remove %s?"
+msgstr "Deseja remover %s?"
+
+#, c-format
+msgid "Database directory: %s\n"
+msgstr "Diretório da base de dados: %s\n"
+
+#, c-format
+msgid "Do you want to remove unused repositories?"
+msgstr "Deseja remover repositórios não utilizados?"
+
+#, c-format
+msgid "Database directory cleaned up\n"
+msgstr "Diretório da base de dados limpo\n"
+
+#, c-format
+msgid "Cache directory: %s\n"
+msgstr "Diretório de cache: %s\n"
+
+#, c-format
+msgid "Packages to keep:\n"
+msgstr "Pacotes para serem mantidos:\n"
+
+#, c-format
+msgid " All locally installed packages\n"
+msgstr " Todos os pacotes instalados localmente\n"
+
+#, c-format
+msgid " All current sync database packages\n"
+msgstr " Estão sincronizados todos os pacotes da base de dados\n"
+
+#, c-format
+msgid "Do you want to remove all other packages from cache?"
+msgstr "Deseja remover todos os outros pacotes da cache?"
+
+#, c-format
+msgid "removing old packages from cache...\n"
+msgstr "a remover pacotes antigos da cache...\n"
+
+#, c-format
+msgid "Do you want to remove ALL files from cache?"
+msgstr "Deseja remover TODOS os pacotes da cache?"
+
+#, c-format
+msgid "removing all files from cache...\n"
+msgstr "a remover todos os pacotes do cache...\n"
+
+#, c-format
+msgid "could not access cache directory %s\n"
+msgstr "sem acesso ao diretório de cache %s\n"
+
+#, c-format
+msgid "File %s does not seem to be a valid package, remove it?"
+msgstr "O ficheiro %s não parece ser um pacote válido, deseja remover?"
+
+#, c-format
+msgid "failed to update %s (%s)\n"
+msgstr "falha ao actualizar %s (%s)\n"
+
+#, c-format
+msgid " %s is up to date\n"
+msgstr " %s está actualizado\n"
+
+#, c-format
+msgid "failed to synchronize any databases\n"
+msgstr "falha ao sincronizar quaisquer bases de dados\n"
+
+#, c-format
+msgid "installed"
+msgstr "instalado"
+
+#, c-format
+msgid "repository '%s' does not exist\n"
+msgstr "repositório '%s' não existe\n"
+
+#, c-format
+msgid "package '%s' was not found in repository '%s'\n"
+msgstr "pacote '%s' não foi encontrado no repositório '%s'\n"
+
+#, c-format
+msgid "package '%s' was not found\n"
+msgstr "pacote '%s' não foi encontrado\n"
+
+#, c-format
+msgid "repository \"%s\" was not found.\n"
+msgstr "repositório \"%s\" não foi encontrado.\n"
+
+#, c-format
+msgid "skipping target: %s\n"
+msgstr "ignorar alvo: %s\n"
+
+#, c-format
+msgid "target not found: %s\n"
+msgstr "alvo não encontrado: %s\n"
+
+#, c-format
+msgid ":: There are %d members in group %s:\n"
+msgstr ":: Há %d membros no grupo %s:\n"
+
+#, c-format
+msgid "database not found: %s\n"
+msgstr "base de dados não encontrada: %s\n"
+
+#, c-format
+msgid ":: Starting full system upgrade...\n"
+msgstr ":: A iniciar a actualização do sistema...\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict\n"
+msgstr ":: %s e %s estão em conflito\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s)\n"
+msgstr ":: %s e %s estão em conflito (%s)\n"
+
+#, c-format
+msgid "Proceed with download?"
+msgstr "Continuar a descarga?"
+
+#, c-format
+msgid "Proceed with installation?"
+msgstr "Continuar a instalação?"
+
+#, c-format
+msgid "%s exists in both '%s' and '%s'\n"
+msgstr "%s existe em '%s' e em '%s'\n"
+
+#, c-format
+msgid "%s: %s exists in filesystem\n"
+msgstr "%s: %s existe no sistema de ficheiros\n"
+
+#, c-format
+msgid "%s is invalid or corrupted\n"
+msgstr "%s é inválido ou está corrompido\n"
+
+#, c-format
+msgid "Errors occurred, no packages were upgraded.\n"
+msgstr "Ocorreram alguns erros, portanto, nenhum pacote foi actualizado.\n"
+
+#, c-format
+msgid ":: Synchronizing package databases...\n"
+msgstr ":: A sincronizar a base de dados de pacotes...\n"
+
+#, c-format
+msgid ":: The following packages should be upgraded first :\n"
+msgstr ":: Os seguintes pacotes precisam actualização primeiro :\n"
+
+#, c-format
+msgid ""
+":: Do you want to cancel the current operation\n"
+":: and upgrade these packages now?"
+msgstr ""
+":: Deseja cancelar a operação actual\n"
+":: e actualizar este(s) pacote(s) agora?"
+
+#, c-format
+msgid "failed to init transaction (%s)\n"
+msgstr "falhou ao iniciar transação (%s)\n"
+
+#, c-format
+msgid ""
+" if you're sure a package manager is not already\n"
+" running, you can remove %s\n"
+msgstr ""
+" caso tenha a certeza de que o gestor de pacotes não está\n"
+" em execução, pode remover %s\n"
+
+#, c-format
+msgid " try running pacman-db-upgrade\n"
+msgstr " tente executar pacman-db-upgrade\n"
+
+#, c-format
+msgid "failed to release transaction (%s)\n"
+msgstr "falhou ao liberar a transação (%s)\n"
+
+#, c-format
+msgid "None"
+msgstr "Nenhum"
+
+#, c-format
+msgid "insufficient columns available for table display\n"
+msgstr ""
+
+#, c-format
+msgid "Name"
+msgstr ""
+
+#, c-format
+msgid "Old Version"
+msgstr ""
+
+#, c-format
+msgid "New Version"
+msgstr ""
+
+#, c-format
+msgid "Size"
+msgstr ""
+
+#, c-format
+msgid "Targets (%d):"
+msgstr "Alvos (%d):"
+
+#, c-format
+msgid "Remove (%d):"
+msgstr "Remover (%d):"
+
+#, fuzzy, c-format
+msgid "Total Download Size: %.2f %s\n"
+msgstr "Tamanho Total da Descarga: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Installed Size: %.2f %s\n"
+msgstr "Tamanho Total da Instalação: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Net Upgrade Size: %.2f %s\n"
+msgstr "Tamanho Total da Descarga: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Removed Size: %.2f %s\n"
+msgstr "Tamanho total dos pacotes a remover: %.2f MB\n"
+
+#, c-format
+msgid "New optional dependencies for %s\n"
+msgstr "Novas dependências opcionais para %s\n"
+
+#, c-format
+msgid "Optional dependencies for %s\n"
+msgstr "Deps Opcionais para %s\n"
+
+#, c-format
+msgid "Repository %s\n"
+msgstr "Repositório %s\n"
+
+#, c-format
+msgid "Invalid value: %d is not between %d and %d\n"
+msgstr "Valor inválido: %d não está entre %d e %d\n"
+
+#, c-format
+msgid "Invalid number: %s\n"
+msgstr "Número inválido: %s\n"
+
+#, c-format
+msgid "Enter a selection (default=all)"
+msgstr "Escolha uma selecção (padrão=todos)"
+
+#, c-format
+msgid "Enter a number (default=%d)"
+msgstr "Escolha um número (padrão=%d)"
+
+#, c-format
+msgid "[Y/n]"
+msgstr "[S/n]"
+
+#, c-format
+msgid "[y/N]"
+msgstr "[s/N]"
+
+#, c-format
+msgid "Y"
+msgstr "S"
+
+#, c-format
+msgid "YES"
+msgstr "SIM"
+
+#, c-format
+msgid "N"
+msgstr "N"
+
+#, c-format
+msgid "NO"
+msgstr "NÃO"
+
+#, c-format
+msgid "failed to allocate string\n"
+msgstr "falha ao alocar string\n"
+
+#, c-format
+msgid "error: %s"
+msgstr "erro: %s"
+
+#, c-format
+msgid "warning: %s"
+msgstr "atenção: %s"
+
+#, c-format
+msgid "error: "
+msgstr "erro: "
+
+#, c-format
+msgid "warning: "
+msgstr "atenção: "
+
diff --git a/src/pacman/po/pt_BR.po b/src/pacman/po/pt_BR.po
new file mode 100644
index 00000000..6415783c
--- /dev/null
+++ b/src/pacman/po/pt_BR.po
@@ -0,0 +1,1153 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Pacman Development Team <pacman-dev@archlinux.org>
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Arch Linux Pacman package manager\n"
+"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
+"POT-Creation-Date: 2011-06-23 21:59-0500\n"
+"PO-Revision-Date: 2011-04-12 02:31+0000\n"
+"Last-Translator: ambaratti <ambaratti.listas@gmail.com>\n"
+"Language-Team: Portuguese (Brazilian) <None>\n"
+"Language: pt_BR\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"
+
+#, c-format
+msgid "checking dependencies...\n"
+msgstr "verificando dependências...\n"
+
+#, c-format
+msgid "checking for file conflicts...\n"
+msgstr "verificando conflitos de arquivo...\n"
+
+#, c-format
+msgid "resolving dependencies...\n"
+msgstr "resolvendo dependências...\n"
+
+#, c-format
+msgid "looking for inter-conflicts...\n"
+msgstr "procurando por conflitos interrelacionados...\n"
+
+#, c-format
+msgid "installing %s...\n"
+msgstr "instalando %s...\n"
+
+#, c-format
+msgid "removing %s...\n"
+msgstr "removendo %s...\n"
+
+#, c-format
+msgid "upgrading %s...\n"
+msgstr "atualizando %s...\n"
+
+#, c-format
+msgid "checking package integrity...\n"
+msgstr "verificando a integridade do(s) pacote(s)...\n"
+
+#, c-format
+msgid "checking delta integrity...\n"
+msgstr "verificando a integridade do(s) delta(s)...\n"
+
+#, c-format
+msgid "applying deltas...\n"
+msgstr "aplicando deltas...\n"
+
+#, c-format
+msgid "generating %s with %s... "
+msgstr "gerando %s com %s... "
+
+#, c-format
+msgid "success!\n"
+msgstr "sucesso!\n"
+
+#, c-format
+msgid "failed.\n"
+msgstr "falhou.\n"
+
+#, c-format
+msgid ":: Retrieving packages from %s...\n"
+msgstr ":: Obtendo pacotes de %s...\n"
+
+#, c-format
+msgid "checking available disk space...\n"
+msgstr "verificando espaço em disco disponível...\n"
+
+#, c-format
+msgid ":: %s is in IgnorePkg/IgnoreGroup. Install anyway?"
+msgstr ":: %s está no IgnorePkg/IgnoreGroup. Instalar assim mesmo?"
+
+#, c-format
+msgid ":: Replace %s with %s/%s?"
+msgstr ":: Substituir %s por %s/%s?"
+
+#, c-format
+msgid ":: %s and %s are in conflict. Remove %s?"
+msgstr ":: %s e %s estão em conflito. Remover %s?"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s). Remove %s?"
+msgstr ":: %s e %s estão em conflito (%s). Remover %s?"
+
+#, c-format
+msgid ""
+":: The following package cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgid_plural ""
+":: The following packages cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgstr[0] ""
+":: O seguinte pacote não pode ser atualizado devido a dependências não "
+"resolvidas:\n"
+msgstr[1] ""
+":: Os seguintes pacotes não podem ser atualizados devido a dependências não "
+"resolvidas:\n"
+
+#, c-format
+msgid "Do you want to skip the above package for this upgrade?"
+msgid_plural "Do you want to skip the above packages for this upgrade?"
+msgstr[0] "Deseja ignorar o pacote acima para esta atualização?"
+msgstr[1] "Deseja ignorar os pacotes acima para esta atualização?"
+
+#, c-format
+msgid ":: There are %d providers available for %s:\n"
+msgstr ":: Existem %d provedores disponíveis para %s:\n"
+
+#, c-format
+msgid ":: %s-%s: local version is newer. Upgrade anyway?"
+msgstr ":: %s-%s: a versão local é mais recente. Deseja atualizar assim mesmo?"
+
+#, c-format
+msgid ":: File %s is corrupted. Do you want to delete it?"
+msgstr ":: Arquivo %s está corrompido. Deseja apagá-lo?"
+
+#, c-format
+msgid "installing"
+msgstr "instalando"
+
+#, c-format
+msgid "upgrading"
+msgstr "atualizando"
+
+#, c-format
+msgid "removing"
+msgstr "removendo"
+
+#, c-format
+msgid "checking for file conflicts"
+msgstr "verificando conflitos de arquivo"
+
+#, c-format
+msgid "checking available disk space"
+msgstr "verificando espaço em disco disponível "
+
+#, c-format
+msgid "checking package integrity"
+msgstr "verificando integridade do pacote"
+
+#, c-format
+msgid "downloading %s...\n"
+msgstr "baixando %s...\n"
+
+#, c-format
+msgid "malloc failure: could not allocate %zd bytes\n"
+msgstr "falha de malloc: não foi possível alocar %zd bytes\n"
+
+#, c-format
+msgid "could not get current working directory\n"
+msgstr "não foi possível obter o diretório de trabalho atual\n"
+
+#, c-format
+msgid "could not chdir to download directory %s\n"
+msgstr "não foi possível mudar para (chdir) o diretório de download %s\n"
+
+#, c-format
+msgid "running XferCommand: fork failed!\n"
+msgstr "executando XferCommand: o fork falhou!\n"
+
+#, c-format
+msgid "could not change directory to %s (%s)\n"
+msgstr "não foi possível mudar para o diretório %s (%s)\n"
+
+#, c-format
+msgid "invalid value for 'CleanMethod' : '%s'\n"
+msgstr "valor inválido para 'CleanMethod' : '%s'\n"
+
+#, c-format
+msgid ""
+"config file %s, line %d: directive '%s' in section '%s' not recognized.\n"
+msgstr ""
+"arquivo de configuração %s, linha %d: diretiva '%s' na seção '%s' não foi "
+"reconhecida.\n"
+
+#, fuzzy, c-format
+msgid "config file %s, line %d: directive '%s' has invalid value '%s'\n"
+msgstr ""
+"arquivo de configuração %s, linha %d: diretiva '%s' precisa de um valor\n"
+
+#, c-format
+msgid ""
+"The mirror '%s' contains the $arch variable, but no Architecture is "
+"defined.\n"
+msgstr ""
+"O mirror '%s' contém a variável $arch, mas nenhuma Arquitetura está "
+"definida.\n"
+
+#, c-format
+msgid "could not add server URL to database '%s': %s (%s)\n"
+msgstr ""
+"não foi possível adicionar a URL do servidor à base de dados '%s': %s (%s)\n"
+
+#, c-format
+msgid "failed to initialize alpm library (%s)\n"
+msgstr "falha ao iniciar biblioteca alpm (%s)\n"
+
+#, c-format
+msgid "problem setting logfile '%s' (%s)\n"
+msgstr "problema ao configurar logfile '%s' (%s)\n"
+
+#, fuzzy, c-format
+msgid "problem setting gpgdir '%s' (%s)\n"
+msgstr "problema ao configurar rootdir '%s' (%s)\n"
+
+#, c-format
+msgid "could not register '%s' database (%s)\n"
+msgstr "não foi possível registrar a base de dados '%s' (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not set verify option for database '%s' (%s)\n"
+msgstr ""
+"não foi possível adicionar a URL do servidor à base de dados '%s': %s (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not add mirror '%s' to database '%s' (%s)\n"
+msgstr ""
+"não foi possível adicionar a URL do servidor à base de dados '%s': %s (%s)\n"
+
+#, c-format
+msgid "config parsing exceeded max recursion depth of %d.\n"
+msgstr ""
+
+#, c-format
+msgid "config file %s could not be read.\n"
+msgstr "o arquivo de configuração %s não pôde ser lido.\n"
+
+#, c-format
+msgid "config file %s, line %d: bad section name.\n"
+msgstr "arquivo de configuração %s, linha %d: nome de seção inválido.\n"
+
+#, c-format
+msgid "config file %s, line %d: syntax error in config file- missing key.\n"
+msgstr ""
+"arquivo de configuração %s, linha %d: erro de sintaxe no arquivo de "
+"configuração - faltando chave.\n"
+
+#, c-format
+msgid "config file %s, line %d: All directives must belong to a section.\n"
+msgstr ""
+"arquivo de configuração %s, linha %d: todas as diretivas devem pertencer a "
+"uma seção.\n"
+
+#, c-format
+msgid "config file %s, line %d: directive '%s' needs a value\n"
+msgstr ""
+"arquivo de configuração %s, linha %d: diretiva '%s' precisa de um valor\n"
+
+#, c-format
+msgid "no targets specified (use -h for help)\n"
+msgstr "nenhum alvo definido (use -h para obter ajuda)\n"
+
+#, c-format
+msgid "no install reason specified (use -h for help)\n"
+msgstr "nenhuma razão de instalação foi especificada (use -h para ajuda)\n"
+
+#, c-format
+msgid "could not set install reason for package %s (%s)\n"
+msgstr ""
+"não foi possível configurar a razão de instalação para o pacote %s (%s)\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'installed as dependency'\n"
+msgstr ""
+"%s: razão de instalação foi configurada para \"instalado como dependência\"\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'explicitly installed'\n"
+msgstr ""
+"%s: razão de instalação foi configurada para \"explicitamente instalado\"\n"
+
+#, c-format
+msgid "Explicitly installed"
+msgstr "Instalado explicitamente"
+
+#, c-format
+msgid "Installed as a dependency for another package"
+msgstr "Instalado como uma dependência de outro pacote"
+
+#, c-format
+msgid "Unknown"
+msgstr "Desconhecido"
+
+#, c-format
+msgid "Repository :"
+msgstr "Repositório :"
+
+#, c-format
+msgid "Name :"
+msgstr "Nome :"
+
+#, c-format
+msgid "Version :"
+msgstr "Versão :"
+
+#, c-format
+msgid "URL :"
+msgstr "URL :"
+
+#, c-format
+msgid "Licenses :"
+msgstr "Licenças :"
+
+#, c-format
+msgid "Groups :"
+msgstr "Grupos :"
+
+#, c-format
+msgid "Provides :"
+msgstr "Provê :"
+
+#, c-format
+msgid "Depends On :"
+msgstr "Depende De :"
+
+#, c-format
+msgid "Optional Deps :"
+msgstr "Depend. Opcionais :"
+
+#, c-format
+msgid "Required By :"
+msgstr "Necessário Para :"
+
+#, c-format
+msgid "Conflicts With :"
+msgstr "Conflita Com :"
+
+#, c-format
+msgid "Replaces :"
+msgstr "Substitui :"
+
+#, fuzzy, c-format
+msgid "Download Size : %6.2f %s\n"
+msgstr "Tamanho do Download : %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Compressed Size: %6.2f %s\n"
+msgstr "Tamanho Compactado : %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Installed Size : %6.2f %s\n"
+msgstr "Tamanho Instalado : %6.2f K\n"
+
+#, c-format
+msgid "Packager :"
+msgstr "Empacotador :"
+
+#, c-format
+msgid "Architecture :"
+msgstr "Arquitetura :"
+
+#, c-format
+msgid "Build Date :"
+msgstr "Data da Compilação :"
+
+#, c-format
+msgid "Install Date :"
+msgstr "Data da Instalação :"
+
+#, c-format
+msgid "Install Reason :"
+msgstr "Motivo da instalação :"
+
+#, c-format
+msgid "Install Script :"
+msgstr "Script de Instalação :"
+
+#, c-format
+msgid "Yes"
+msgstr "Sim"
+
+#, c-format
+msgid "No"
+msgstr "Não"
+
+#, c-format
+msgid "MD5 Sum :"
+msgstr "Soma MD5 :"
+
+#, c-format
+msgid "Description :"
+msgstr "Descrição :"
+
+#, c-format
+msgid "could not calculate checksums for %s\n"
+msgstr "não foi possível calcular os checksums para %s\n"
+
+#, c-format
+msgid "Backup Files:\n"
+msgstr "Arquivos de Backup:\n"
+
+#, c-format
+msgid "(none)\n"
+msgstr "(nenhum)\n"
+
+#, c-format
+msgid "no changelog available for '%s'.\n"
+msgstr "nenhum changelog disponível para '%s'.\n"
+
+#, c-format
+msgid "options"
+msgstr "opções"
+
+#, c-format
+msgid "file(s)"
+msgstr "arquivo(s)"
+
+#, c-format
+msgid "package(s)"
+msgstr "pacote(s)"
+
+#, c-format
+msgid "usage"
+msgstr "uso"
+
+#, c-format
+msgid "operation"
+msgstr "operação"
+
+#, c-format
+msgid "operations:\n"
+msgstr "operações:\n"
+
+#, c-format
+msgid ""
+"\n"
+"use '%s {-h --help}' with an operation for available options\n"
+msgstr ""
+"\n"
+"use '%s {-h --help}' com uma operação para ver as opções disponíveis\n"
+
+#, c-format
+msgid ""
+" -c, --cascade remove packages and all packages that depend on them\n"
+msgstr " -c, --cascade remove pacotes e todos os que dependem deles\n"
+
+#, c-format
+msgid " -n, --nosave remove configuration files\n"
+msgstr " -n, --nosave remove os arquivos de configuração\n"
+
+#, c-format
+msgid ""
+" -s, --recursive remove unnecessary dependencies\n"
+" (-ss includes explicitly installed dependencies)\n"
+msgstr ""
+" -s, --recursive remove as dependências desnecessárias\n"
+" (-ss inclui dependências instaladas explicitamente)\n"
+
+#, c-format
+msgid " -u, --unneeded remove unneeded packages\n"
+msgstr " -u, --unneeded remove pacotes desnecessários\n"
+
+#, c-format
+msgid " -c, --changelog view the changelog of a package\n"
+msgstr " -c, --changelog visualiza o changelog de um pacote\n"
+
+#, c-format
+msgid ""
+" -d, --deps list packages installed as dependencies [filter]\n"
+msgstr ""
+" -d, --deps lista os pacotes instalados como dependências "
+"[filtro] \n"
+
+#, c-format
+msgid " -e, --explicit list packages explicitly installed [filter]\n"
+msgstr ""
+" -e, --explicit lista os pacotes instalados explicitamente [filtro]\n"
+
+#, c-format
+msgid " -g, --groups view all members of a package group\n"
+msgstr ""
+" -g, --groups visualiza todos os membros de um grupo de pacotes\n"
+
+#, c-format
+msgid ""
+" -i, --info view package information (-ii for backup files)\n"
+msgstr ""
+" -i, --info visualiza informações do pacote (-ii para arquivos de "
+"backup)\n"
+
+#, c-format
+msgid ""
+" -k, --check check that the files owned by the package(s) are "
+"present\n"
+msgstr ""
+" -k, --check verifica se os arquivos do(s) pacote(s) estão "
+"presentes\n"
+
+#, c-format
+msgid " -l, --list list the contents of the queried package\n"
+msgstr " -l, --list lista o conteúdo do pacote consultado\n"
+
+#, c-format
+msgid ""
+" -m, --foreign list installed packages not found in sync db(s) "
+"[filter]\n"
+msgstr ""
+" -m, --foreign lista os pacotes instalados não encontrados na(s) base"
+"(s) de dados sincronizada(s) [filtro]\n"
+
+#, c-format
+msgid " -o, --owns <file> query the package that owns <file>\n"
+msgstr " -o, --owns <arquivo> consulta qual o pacote que contém <arquivo>\n"
+
+#, c-format
+msgid " -p, --file <package> query a package file instead of the database\n"
+msgstr ""
+" -p, --file <pacote> consulta um arquivo de pacote ao invés da base de "
+"dados\n"
+
+#, c-format
+msgid " -q, --quiet show less information for query and search\n"
+msgstr ""
+" -q, --quiet mostra menos informações nas consultas e pesquisas\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search locally-installed packages for matching "
+"strings\n"
+msgstr ""
+" -s, --search <regex> pesquisa em pacotes instalados localmente por "
+"palavras coincidentes\n"
+
+#, c-format
+msgid ""
+" -t, --unrequired list packages not required by any package [filter]\n"
+msgstr ""
+" -t, --unrequired lista pacotes não necessários para nenhum outro "
+"pacote [filtro]\n"
+
+#, c-format
+msgid " -u, --upgrades list outdated packages [filter]\n"
+msgstr " -u, --upgrades lista os pacotes desatualizados [filtro]\n"
+
+#, c-format
+msgid ""
+" -c, --clean remove old packages from cache directory (-cc for "
+"all)\n"
+msgstr ""
+" -c, --clean remove pacotes antigos do diretório de cache (-cc "
+"para remover todos)\n"
+
+#, c-format
+msgid " -i, --info view package information\n"
+msgstr " -i, --info visualiza informações do pacote\n"
+
+#, c-format
+msgid " -l, --list <repo> view a list of packages in a repo\n"
+msgstr ""
+" -l, --list <repo> visualiza uma lista dos pacotes em um repositório\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search remote repositories for matching strings\n"
+msgstr ""
+" -s, --search <regex> pesquisa em repositórios remotos por palavras "
+"coincidentes\n"
+
+#, c-format
+msgid ""
+" -u, --sysupgrade upgrade installed packages (-uu allows downgrade)\n"
+msgstr ""
+" -u, --sysupgrade atualiza os pacotes instalados (-uu permite "
+"downgrade)\n"
+
+#, c-format
+msgid ""
+" -w, --downloadonly download packages but do not install/upgrade "
+"anything\n"
+msgstr ""
+" -w, --downloadonly baixa os pacotes mas não instala/atualiza nenhum "
+"deles\n"
+
+#, c-format
+msgid ""
+" -y, --refresh download fresh package databases from the server\n"
+msgstr ""
+" -y, --refresh baixa uma nova base de dados de pacotes a partir do "
+"servidor\n"
+
+#, c-format
+msgid " --needed don't reinstall up to date packages\n"
+msgstr " --needed não reinstala pacotes atualizados\n"
+
+#, c-format
+msgid " --asdeps mark packages as non-explicitly installed\n"
+msgstr ""
+" --asdeps marca os pacotes como não explicitamente instalados\n"
+
+#, c-format
+msgid " --asexplicit mark packages as explicitly installed\n"
+msgstr ""
+" --asexplicit marca os pacotes como explicitamente instalados\n"
+
+#, c-format
+msgid " -f, --force force install, overwrite conflicting files\n"
+msgstr ""
+" -f, --force força instalação, sobrescreve arquivos conflitantes\n"
+
+#, c-format
+msgid " --asdeps install packages as non-explicitly installed\n"
+msgstr ""
+" --asdeps instala pacotes como não explicitamente instalados\n"
+
+#, c-format
+msgid " --asexplicit install packages as explicitly installed\n"
+msgstr ""
+" --asexplicit instala pacotes como explicitamente instalados\n"
+
+#, c-format
+msgid ""
+" --ignore <pkg> ignore a package upgrade (can be used more than "
+"once)\n"
+msgstr ""
+" --ignore <pacote> ignora a atualização de um pacote (pode ser usado "
+"mais de uma vez)\n"
+
+#, c-format
+msgid ""
+" --ignoregroup <grp>\n"
+" ignore a group upgrade (can be used more than once)\n"
+msgstr ""
+" --ignoregroup <grupo>\n"
+" ignora a atualização de um grupo (pode ser usado mais "
+"de uma vez)\n"
+
+#, c-format
+msgid ""
+" -d, --nodeps skip dependency version checks (-dd to skip all "
+"checks)\n"
+msgstr ""
+" -d, --nodeps ignora verificações de versão da dependência (-dd "
+"para ignorar todas as verificações)\n"
+
+#, c-format
+msgid ""
+" -k, --dbonly only modify database entries, not package files\n"
+msgstr ""
+"-K, - dbonly modificar apenas as entradas do banco de dados, e não "
+"os arquivos de pacote\n"
+
+#, c-format
+msgid ""
+" --noprogressbar do not show a progress bar when downloading files\n"
+msgstr ""
+" --noprogressbar não mostra uma barra de progresso enquanto baixa os "
+"arquivos\n"
+
+#, c-format
+msgid ""
+" --noscriptlet do not execute the install scriptlet if one exists\n"
+msgstr ""
+" --noscriptlet não executa o script de instalação se ele existir\n"
+
+#, c-format
+msgid ""
+" --print print the targets instead of performing the "
+"operation\n"
+msgstr " --print mostrar os alvos em vez de efetuar a operação\n"
+
+#, c-format
+msgid ""
+" --print-format <string>\n"
+" specify how the targets should be printed\n"
+msgstr ""
+" --print-format <string>\n"
+" especifica como os pacotes devem ser mostrados\n"
+
+#, c-format
+msgid " -b, --dbpath <path> set an alternate database location\n"
+msgstr ""
+" -b, --dbpath <caminho> define uma localização alternativa para a base de "
+"dados\n"
+
+#, c-format
+msgid " -r, --root <path> set an alternate installation root\n"
+msgstr ""
+" -r, --root <caminho> define um diretório raiz de instalação alternativo\n"
+
+#, c-format
+msgid " -v, --verbose be verbose\n"
+msgstr " -v, --verbose mostra informações adicionais\n"
+
+#, c-format
+msgid " --arch <arch> set an alternate architecture\n"
+msgstr " --arch <arquitetura> define uma arquitetura alternativa\n"
+
+#, c-format
+msgid " --cachedir <dir> set an alternate package cache location\n"
+msgstr ""
+" --cachedir <diretório> define uma localização alternativa para o "
+"cache de pacotes\n"
+
+#, c-format
+msgid " --config <path> set an alternate configuration file\n"
+msgstr ""
+" --config <caminho> define um arquivo de configuração alternativo\n"
+
+#, c-format
+msgid " --debug display debug messages\n"
+msgstr " --debug mostra mensagens de debug\n"
+
+#, fuzzy, c-format
+msgid " --gpgdir <path> set an alternate home directory for GnuPG\n"
+msgstr " --logfile <caminho> define um arquivo de log alternativo\n"
+
+#, c-format
+msgid " --logfile <path> set an alternate log file\n"
+msgstr " --logfile <caminho> define um arquivo de log alternativo\n"
+
+#, c-format
+msgid " --noconfirm do not ask for any confirmation\n"
+msgstr " --noconfirm não pede nenhuma confirmação\n"
+
+#, c-format
+msgid ""
+" This program may be freely redistributed under\n"
+" the terms of the GNU General Public License.\n"
+msgstr ""
+" Este programa pode ser redistribuído livremente sob\n"
+" os termos da GNU General Public License\n"
+
+#, c-format
+msgid "'%s' is not a valid debug level\n"
+msgstr "'%s' não é um nível de debug válido\n"
+
+#, c-format
+msgid "only one operation may be used at a time\n"
+msgstr "somente uma operação pode ser usada por vez\n"
+
+#, c-format
+msgid "invalid option\n"
+msgstr "opção inválida\n"
+
+#, c-format
+msgid "buffer overflow detected in arg parsing\n"
+msgstr "detetado buffer overflow no processamento dos argumentos\n"
+
+#, c-format
+msgid "failed to reopen stdin for reading: (%s)\n"
+msgstr "falha ao reabrir stdin para leitura: (%s)\n"
+
+#, c-format
+msgid "you cannot perform this operation unless you are root.\n"
+msgstr "você não pode realizar esta operação a menos que seja root.\n"
+
+#, c-format
+msgid "no operation specified (use -h for help)\n"
+msgstr "nenhuma operação especificada (use -h para obter ajuda)\n"
+
+#, c-format
+msgid "%s is owned by %s %s\n"
+msgstr "%s pertence a %s %s\n"
+
+#, c-format
+msgid "no file was specified for --owns\n"
+msgstr "nenhum arquivo foi especificado para --owns\n"
+
+#, c-format
+msgid "failed to find '%s' in PATH: %s\n"
+msgstr "falha ao encontrar '%s' no PATH: %s\n"
+
+#, c-format
+msgid "failed to read file '%s': %s\n"
+msgstr "falha ao ler o arquivo '%s': %s\n"
+
+#, c-format
+msgid "cannot determine ownership of directory '%s'\n"
+msgstr "não foi possível determinar o proprietário do diretório '%s'\n"
+
+#, c-format
+msgid "cannot determine real path for '%s': %s\n"
+msgstr "não é possível determinar o caminho real para '%s': %s\n"
+
+#, c-format
+msgid "path too long: %s%s\n"
+msgstr "caminho muito longo: %s%s\n"
+
+#, c-format
+msgid "No package owns %s\n"
+msgstr "Nenhum pacote possui %s\n"
+
+#, c-format
+msgid "group \"%s\" was not found\n"
+msgstr "o grupo \"%s\" não foi encontrado\n"
+
+#, c-format
+msgid "%s: %d total file, "
+msgid_plural "%s: %d total files, "
+msgstr[0] "%s: %d arquivo completo, "
+msgstr[1] "%s: %d arquivos completos, "
+
+#, c-format
+msgid "%d missing file\n"
+msgid_plural "%d missing files\n"
+msgstr[0] "%d arquivo faltando\n"
+msgstr[1] "%d arquivos faltando\n"
+
+#, c-format
+msgid "no usable package repositories configured.\n"
+msgstr "nenhum repositório de pacotes utilizável foi configurado.\n"
+
+#, c-format
+msgid "package \"%s\" not found\n"
+msgstr "pacote \"%s\" não foi encontrado\n"
+
+#, c-format
+msgid "failed to prepare transaction (%s)\n"
+msgstr "falha ao preparar a transação (%s)\n"
+
+#, c-format
+msgid ":: package %s does not have a valid architecture\n"
+msgstr ":: pacote '%s' não possui uma arquitetura válida\n"
+
+#, c-format
+msgid ":: %s: requires %s\n"
+msgstr ":: %s: requer %s\n"
+
+#, c-format
+msgid "%s is designated as a HoldPkg.\n"
+msgstr "%s foi designado como um HoldPkg.\n"
+
+#, c-format
+msgid "HoldPkg was found in target list. Do you want to continue?"
+msgstr "Pacotes HoldPkg foram encontrados na lista. Você deseja continuar?"
+
+#, c-format
+msgid " there is nothing to do\n"
+msgstr " não há nada a fazer\n"
+
+#, c-format
+msgid "Do you want to remove these packages?"
+msgstr "Deseja remover estes pacotes?"
+
+#, c-format
+msgid "failed to commit transaction (%s)\n"
+msgstr "falha ao submeter a transação (%s)\n"
+
+#, c-format
+msgid "could not access database directory\n"
+msgstr "não foi possível acessar o diretório da base de dados\n"
+
+#, c-format
+msgid "could not remove %s\n"
+msgstr "não foi possível remover %s\n"
+
+#, c-format
+msgid "Do you want to remove %s?"
+msgstr "Deseja remover %s?"
+
+#, c-format
+msgid "Database directory: %s\n"
+msgstr "Diretório da base de dados: %s\n"
+
+#, c-format
+msgid "Do you want to remove unused repositories?"
+msgstr "Deseja remover repositórios não utilizados?"
+
+#, c-format
+msgid "Database directory cleaned up\n"
+msgstr "Diretório da base de dados foi apagado\n"
+
+#, c-format
+msgid "Cache directory: %s\n"
+msgstr "Diretório de cache: %s\n"
+
+#, c-format
+msgid "Packages to keep:\n"
+msgstr "Pacotes a serem mantidos:\n"
+
+#, c-format
+msgid " All locally installed packages\n"
+msgstr " Todos os pacotes instalados localmente\n"
+
+#, c-format
+msgid " All current sync database packages\n"
+msgstr " Todas as bases de dados de pacotes atualmente sincronizadas\n"
+
+#, c-format
+msgid "Do you want to remove all other packages from cache?"
+msgstr "Deseja remover todos os outros pacotes do cache?"
+
+#, c-format
+msgid "removing old packages from cache...\n"
+msgstr "removendo pacotes antigos do cache...\n"
+
+#, c-format
+msgid "Do you want to remove ALL files from cache?"
+msgstr "Deseja remover TODOS os arquivos do cache?"
+
+#, c-format
+msgid "removing all files from cache...\n"
+msgstr "removendo todos os arquivos do cache...\n"
+
+#, c-format
+msgid "could not access cache directory %s\n"
+msgstr "não foi possível acessar o diretório de cache %s\n"
+
+#, c-format
+msgid "File %s does not seem to be a valid package, remove it?"
+msgstr "Arquivo %s não parece ser um pacote válido, deseja removê-lo?"
+
+#, c-format
+msgid "failed to update %s (%s)\n"
+msgstr "falha ao atualizar %s (%s)\n"
+
+#, c-format
+msgid " %s is up to date\n"
+msgstr " %s está atualizado\n"
+
+#, c-format
+msgid "failed to synchronize any databases\n"
+msgstr "falha ao sincronizar quaisquer bases de dados\n"
+
+#, c-format
+msgid "installed"
+msgstr "instalado"
+
+#, c-format
+msgid "repository '%s' does not exist\n"
+msgstr "repositório '%s' não existe\n"
+
+#, c-format
+msgid "package '%s' was not found in repository '%s'\n"
+msgstr "pacote '%s' não foi encontrado no repositório '%s'\n"
+
+#, c-format
+msgid "package '%s' was not found\n"
+msgstr "pacote '%s' não foi encontrado\n"
+
+#, c-format
+msgid "repository \"%s\" was not found.\n"
+msgstr "repositório \"%s\" não foi encontrado.\n"
+
+#, c-format
+msgid "skipping target: %s\n"
+msgstr "ignorando alvo: %s\n"
+
+#, c-format
+msgid "target not found: %s\n"
+msgstr "alvo não encontrado: %s\n"
+
+#, c-format
+msgid ":: There are %d members in group %s:\n"
+msgstr ":: Existem %d membros no grupo %s:\n"
+
+#, c-format
+msgid "database not found: %s\n"
+msgstr "base de dados não encontrada: %s\n"
+
+#, c-format
+msgid ":: Starting full system upgrade...\n"
+msgstr ":: Iniciando atualização completa do sistema...\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict\n"
+msgstr ":: %s e %s estão em conflito\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s)\n"
+msgstr ":: %s e %s estão em conflito (%s)\n"
+
+#, c-format
+msgid "Proceed with download?"
+msgstr "Prosseguir com o download?"
+
+#, c-format
+msgid "Proceed with installation?"
+msgstr "Prosseguir com a instalação?"
+
+#, c-format
+msgid "%s exists in both '%s' and '%s'\n"
+msgstr "%s existe tanto em '%s' como em '%s'\n"
+
+#, c-format
+msgid "%s: %s exists in filesystem\n"
+msgstr "%s: %s existe no sistema de arquivos\n"
+
+#, c-format
+msgid "%s is invalid or corrupted\n"
+msgstr "%s é inválido ou está corrompido\n"
+
+#, c-format
+msgid "Errors occurred, no packages were upgraded.\n"
+msgstr "Ocorreram erros, nenhum pacote foi atualizado.\n"
+
+#, c-format
+msgid ":: Synchronizing package databases...\n"
+msgstr ":: Sincronizando a base de dados de pacotes...\n"
+
+#, c-format
+msgid ":: The following packages should be upgraded first :\n"
+msgstr ":: Os seguintes pacotes precisam ser atualizados antes :\n"
+
+#, c-format
+msgid ""
+":: Do you want to cancel the current operation\n"
+":: and upgrade these packages now?"
+msgstr ""
+":: Você deseja cancelar a operação atual\n"
+":: e atualizar estes pacotes agora?"
+
+#, c-format
+msgid "failed to init transaction (%s)\n"
+msgstr "falha ao iniciar a transação (%s)\n"
+
+#, c-format
+msgid ""
+" if you're sure a package manager is not already\n"
+" running, you can remove %s\n"
+msgstr ""
+" se tiver certeza de que um gerenciador de pacotes não esteja\n"
+" rodando, você pode remover %s\n"
+
+#, c-format
+msgid " try running pacman-db-upgrade\n"
+msgstr " tente executar pacman-db-upgrade\n"
+
+#, c-format
+msgid "failed to release transaction (%s)\n"
+msgstr "falha ao liberar a transação (%s)\n"
+
+#, c-format
+msgid "None"
+msgstr "Nenhum"
+
+#, c-format
+msgid "insufficient columns available for table display\n"
+msgstr ""
+
+#, c-format
+msgid "Name"
+msgstr ""
+
+#, c-format
+msgid "Old Version"
+msgstr ""
+
+#, c-format
+msgid "New Version"
+msgstr ""
+
+#, c-format
+msgid "Size"
+msgstr ""
+
+#, c-format
+msgid "Targets (%d):"
+msgstr "Alvos (%d):"
+
+#, c-format
+msgid "Remove (%d):"
+msgstr "Remover (%d):"
+
+#, fuzzy, c-format
+msgid "Total Download Size: %.2f %s\n"
+msgstr "Tamanho Total do Download: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Installed Size: %.2f %s\n"
+msgstr "Tamanho Total da Instalação: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Net Upgrade Size: %.2f %s\n"
+msgstr "Tamanho Total do Download: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Removed Size: %.2f %s\n"
+msgstr "Tamanho Total dos Pacotes a Remover: %.2f MB\n"
+
+#, c-format
+msgid "New optional dependencies for %s\n"
+msgstr "Novas dependências opcionais para %s\n"
+
+#, c-format
+msgid "Optional dependencies for %s\n"
+msgstr "Dependências opcionais para %s\n"
+
+#, c-format
+msgid "Repository %s\n"
+msgstr "Repositório %s\n"
+
+#, c-format
+msgid "Invalid value: %d is not between %d and %d\n"
+msgstr "Valor inválido: %d não está entre %d e %d\n"
+
+#, c-format
+msgid "Invalid number: %s\n"
+msgstr "Número inválido: %s\n"
+
+#, c-format
+msgid "Enter a selection (default=all)"
+msgstr "Digite uma seleção (padrão=todos)"
+
+#, c-format
+msgid "Enter a number (default=%d)"
+msgstr "Digite um número (padrão=%d)"
+
+#, c-format
+msgid "[Y/n]"
+msgstr "[S/n]"
+
+#, c-format
+msgid "[y/N]"
+msgstr "[s/N]"
+
+#, c-format
+msgid "Y"
+msgstr "S"
+
+#, c-format
+msgid "YES"
+msgstr "SIM"
+
+#, c-format
+msgid "N"
+msgstr "N"
+
+#, c-format
+msgid "NO"
+msgstr "NÃO"
+
+#, c-format
+msgid "failed to allocate string\n"
+msgstr "falha em alocar um texto\n"
+
+#, c-format
+msgid "error: %s"
+msgstr "erro: %s"
+
+#, c-format
+msgid "warning: %s"
+msgstr "atenção: %s"
+
+#, c-format
+msgid "error: "
+msgstr "erro: "
+
+#, c-format
+msgid "warning: "
+msgstr "atenção: "
+
diff --git a/src/pacman/po/remove-potcdate.sin b/src/pacman/po/remove-potcdate.sin
new file mode 100644
index 00000000..2436c49e
--- /dev/null
+++ b/src/pacman/po/remove-potcdate.sin
@@ -0,0 +1,19 @@
+# Sed script that remove the POT-Creation-Date line in the header entry
+# from a POT file.
+#
+# The distinction between the first and the following occurrences of the
+# pattern is achieved by looking at the hold space.
+/^"POT-Creation-Date: .*"$/{
+x
+# Test if the hold space is empty.
+s/P/P/
+ta
+# Yes it was empty. First occurrence. Remove the line.
+g
+d
+bb
+:a
+# The hold space was nonempty. Following occurrences. Do nothing.
+x
+:b
+}
diff --git a/src/pacman/po/ro.po b/src/pacman/po/ro.po
new file mode 100644
index 00000000..2a813da7
--- /dev/null
+++ b/src/pacman/po/ro.po
@@ -0,0 +1,1163 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Pacman Development Team <pacman-dev@archlinux.org>
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Arch Linux Pacman package manager\n"
+"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
+"POT-Creation-Date: 2011-06-23 21:59-0500\n"
+"PO-Revision-Date: 2011-04-12 13:54+0000\n"
+"Last-Translator: wonder <ibiru@archlinux.org>\n"
+"Language-Team: Romanian <>\n"
+"Language: ro\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?"
+"2:1))\n"
+
+#, c-format
+msgid "checking dependencies...\n"
+msgstr "se verifică dependențele...\n"
+
+#, c-format
+msgid "checking for file conflicts...\n"
+msgstr "se verifică dacă sunt conflicte între fișiere...\n"
+
+#, c-format
+msgid "resolving dependencies...\n"
+msgstr "se rezolvă dependențele...\n"
+
+#, c-format
+msgid "looking for inter-conflicts...\n"
+msgstr "căutare conflicte încrucișate...\n"
+
+#, c-format
+msgid "installing %s...\n"
+msgstr "se instalează %s...\n"
+
+#, c-format
+msgid "removing %s...\n"
+msgstr "se elimină %s...\n"
+
+#, c-format
+msgid "upgrading %s...\n"
+msgstr "se actualizează %s...\n"
+
+#, c-format
+msgid "checking package integrity...\n"
+msgstr "se verifică integritatea pachetului...\n"
+
+#, c-format
+msgid "checking delta integrity...\n"
+msgstr "se verifică integritatea delta...\n"
+
+#, c-format
+msgid "applying deltas...\n"
+msgstr "se aplică delta-uri...\n"
+
+#, c-format
+msgid "generating %s with %s... "
+msgstr "se generează %s cu %s..."
+
+#, c-format
+msgid "success!\n"
+msgstr "succes!\n"
+
+#, c-format
+msgid "failed.\n"
+msgstr "eșuat.\n"
+
+#, c-format
+msgid ":: Retrieving packages from %s...\n"
+msgstr ":: Se preiau pachetele din %s...\n"
+
+#, c-format
+msgid "checking available disk space...\n"
+msgstr "se verifică spațiul disponibil pe disc...\n"
+
+#, c-format
+msgid ":: %s is in IgnorePkg/IgnoreGroup. Install anyway?"
+msgstr ":: %s este în IgnorePkg/IgnoreGroup. Instalează oricum?"
+
+#, c-format
+msgid ":: Replace %s with %s/%s?"
+msgstr ":: Înlocuiește %s cu %s/%s?"
+
+#, c-format
+msgid ":: %s and %s are in conflict. Remove %s?"
+msgstr ":: %s e în conflict cu %s. Elimină %s?"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s). Remove %s?"
+msgstr ":: %s și %s sunt în conflict (%s). Elimină %s?"
+
+#, c-format
+msgid ""
+":: The following package cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgid_plural ""
+":: The following packages cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgstr[0] ""
+":: Următorul pachet nu poate fi actualizat datorită unor dependențe "
+"nerezolvabile:\n"
+msgstr[1] ""
+":: Următoarele pachete nu pot fi actualizate datorită unor dependențe "
+"nerezolvabile:\n"
+msgstr[2] ""
+":: Următoarele pachete nu pot fi actualizate datorită unor dependențe "
+"nerezolvabile:\n"
+
+#, c-format
+msgid "Do you want to skip the above package for this upgrade?"
+msgid_plural "Do you want to skip the above packages for this upgrade?"
+msgstr[0] "Dorești omiterea pachetului de mai sus pentru această actualizare?"
+msgstr[1] "Dorești omiterea pachetelor de mai sus pentru această actualizare?"
+msgstr[2] "Dorești omiterea pachetului de mai sus pentru această actualizare?"
+
+#, c-format
+msgid ":: There are %d providers available for %s:\n"
+msgstr ":: Există %d pachete care furnizează %s:\n"
+
+#, c-format
+msgid ":: %s-%s: local version is newer. Upgrade anyway?"
+msgstr ":: %s-%s: versiunea locală este mai nouă. Actualizează oricum?"
+
+#, c-format
+msgid ":: File %s is corrupted. Do you want to delete it?"
+msgstr ":: Fișierul %s este corupt. Vreți să fie șters?"
+
+#, c-format
+msgid "installing"
+msgstr "se instalează"
+
+#, c-format
+msgid "upgrading"
+msgstr "se actualizează"
+
+#, c-format
+msgid "removing"
+msgstr "se elimină"
+
+#, c-format
+msgid "checking for file conflicts"
+msgstr "se caută conflicte între fișiere"
+
+#, c-format
+msgid "checking available disk space"
+msgstr "se verifică spațiul disponibil pe disc"
+
+#, c-format
+msgid "checking package integrity"
+msgstr "se verifică integritatea pachetului"
+
+#, c-format
+msgid "downloading %s...\n"
+msgstr "se descarcă %s...\n"
+
+#, c-format
+msgid "malloc failure: could not allocate %zd bytes\n"
+msgstr "eșec malloc: nu se pot aloca %zd bytes\n"
+
+#, c-format
+msgid "could not get current working directory\n"
+msgstr "nu s-a putut determina directorul de lucru curent\n"
+
+#, c-format
+msgid "could not chdir to download directory %s\n"
+msgstr "nu se poate schimba directorul la directorul de descărcare %s\n"
+
+#, c-format
+msgid "running XferCommand: fork failed!\n"
+msgstr "se rulează XferCommand: fork eșuat!\n"
+
+#, c-format
+msgid "could not change directory to %s (%s)\n"
+msgstr ""
+"nu s-a putut intra în directorul %s (%s)\n"
+"\n"
+
+#, c-format
+msgid "invalid value for 'CleanMethod' : '%s'\n"
+msgstr "valoare nevalidă pentru 'CleanMethod' : '%s'\n"
+
+#, c-format
+msgid ""
+"config file %s, line %d: directive '%s' in section '%s' not recognized.\n"
+msgstr ""
+"fișierul de configurare %s, linia %d: directiva '%s' din secțiunea '%s' "
+"nerecunoscută.\n"
+
+#, fuzzy, c-format
+msgid "config file %s, line %d: directive '%s' has invalid value '%s'\n"
+msgstr ""
+"fișierul de configurare %s, linia %d: directiva '%s' necesită o valoare\n"
+
+#, c-format
+msgid ""
+"The mirror '%s' contains the $arch variable, but no Architecture is "
+"defined.\n"
+msgstr ""
+"Mirror-ul '%s' conține variabila $arch dar nicio architectură nu este "
+"definită.\n"
+
+#, c-format
+msgid "could not add server URL to database '%s': %s (%s)\n"
+msgstr "nu poate fi adăugat URL-ul serverului la baza de date '%s': %s (%s)\n"
+
+#, c-format
+msgid "failed to initialize alpm library (%s)\n"
+msgstr "eșec la inițializarea bibliotecii alpm (%s)\n"
+
+#, c-format
+msgid "problem setting logfile '%s' (%s)\n"
+msgstr "problemă la setarea logfile '%s' (%s)\n"
+
+#, fuzzy, c-format
+msgid "problem setting gpgdir '%s' (%s)\n"
+msgstr "problemă la setarea rootdir '%s' (%s)\n"
+
+#, c-format
+msgid "could not register '%s' database (%s)\n"
+msgstr "nu se poate înregistra '%s' database (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not set verify option for database '%s' (%s)\n"
+msgstr "nu poate fi adăugat URL-ul serverului la baza de date '%s': %s (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not add mirror '%s' to database '%s' (%s)\n"
+msgstr "nu poate fi adăugat URL-ul serverului la baza de date '%s': %s (%s)\n"
+
+#, c-format
+msgid "config parsing exceeded max recursion depth of %d.\n"
+msgstr ""
+
+#, c-format
+msgid "config file %s could not be read.\n"
+msgstr "fișierul de configurare %s nu poate fi citit.\n"
+
+#, c-format
+msgid "config file %s, line %d: bad section name.\n"
+msgstr "fișierul de configurare %s, linia %d: nume de secțiune greșit.\n"
+
+#, c-format
+msgid "config file %s, line %d: syntax error in config file- missing key.\n"
+msgstr ""
+"fișierul de configurare %s, linia %d: eroare de sintaxă în fișierul de "
+"configurare - cheie lipsă.\n"
+
+#, c-format
+msgid "config file %s, line %d: All directives must belong to a section.\n"
+msgstr ""
+"fișierul de configurare %s, linia %d: Toate directivele trebuie să aparțină "
+"unei secțiuni.\n"
+
+#, c-format
+msgid "config file %s, line %d: directive '%s' needs a value\n"
+msgstr ""
+"fișierul de configurare %s, linia %d: directiva '%s' necesită o valoare\n"
+
+#, c-format
+msgid "no targets specified (use -h for help)\n"
+msgstr "nu sunt specificate ținte (folosiți -h pentru ajutor)\n"
+
+#, c-format
+msgid "no install reason specified (use -h for help)\n"
+msgstr ""
+"nu a fost specificat nici un motiv pentru instalare (folosește -h pentru "
+"ajutor)\n"
+
+#, c-format
+msgid "could not set install reason for package %s (%s)\n"
+msgstr ""
+"nu s-a putut seta motivul pentru care a fost instalat pachetul %s (%s)\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'installed as dependency'\n"
+msgstr ""
+"%s: motivul pentru instalare a fost schimbat în 'instalat ca dependență'\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'explicitly installed'\n"
+msgstr "%s: motivul pentru instalare a fost schimbat în: 'instalat explicit'\n"
+
+#, c-format
+msgid "Explicitly installed"
+msgstr "Instalat în mod explicit"
+
+#, c-format
+msgid "Installed as a dependency for another package"
+msgstr "Instalat ca o dependență pentru un alt pachet"
+
+#, c-format
+msgid "Unknown"
+msgstr "Necunoscut"
+
+#, c-format
+msgid "Repository :"
+msgstr "Depozit :"
+
+#, c-format
+msgid "Name :"
+msgstr "Nume :"
+
+#, c-format
+msgid "Version :"
+msgstr "Versiune :"
+
+#, c-format
+msgid "URL :"
+msgstr "URL :"
+
+#, c-format
+msgid "Licenses :"
+msgstr "Licențe :"
+
+#, c-format
+msgid "Groups :"
+msgstr "Grupuri :"
+
+#, c-format
+msgid "Provides :"
+msgstr "Furnizează :"
+
+#, c-format
+msgid "Depends On :"
+msgstr "Depinde de :"
+
+#, c-format
+msgid "Optional Deps :"
+msgstr "Dep. opționale :"
+
+#, c-format
+msgid "Required By :"
+msgstr "Cerut de :"
+
+#, c-format
+msgid "Conflicts With :"
+msgstr "În conflict cu :"
+
+#, c-format
+msgid "Replaces :"
+msgstr "Înlocuiește :"
+
+#, fuzzy, c-format
+msgid "Download Size : %6.2f %s\n"
+msgstr "Mărime descărcare: %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Compressed Size: %6.2f %s\n"
+msgstr "Mărime comprimat : %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Installed Size : %6.2f %s\n"
+msgstr "Mărime instalat : %6.2f K\n"
+
+#, c-format
+msgid "Packager :"
+msgstr "Autor pachet :"
+
+#, c-format
+msgid "Architecture :"
+msgstr "Arhitectură :"
+
+#, c-format
+msgid "Build Date :"
+msgstr "Data construirii :"
+
+#, c-format
+msgid "Install Date :"
+msgstr "Data instalării :"
+
+#, c-format
+msgid "Install Reason :"
+msgstr "Motivul instalării :"
+
+#, c-format
+msgid "Install Script :"
+msgstr "Script de instalare:"
+
+#, c-format
+msgid "Yes"
+msgstr "Da"
+
+#, c-format
+msgid "No"
+msgstr "Nu"
+
+#, c-format
+msgid "MD5 Sum :"
+msgstr "Suma MD5 :"
+
+#, c-format
+msgid "Description :"
+msgstr "Descriere :"
+
+#, c-format
+msgid "could not calculate checksums for %s\n"
+msgstr "nu se pot calcula sumele de control pentru %s\n"
+
+#, c-format
+msgid "Backup Files:\n"
+msgstr "Fișiere backup:\n"
+
+#, c-format
+msgid "(none)\n"
+msgstr "(niciunul)\n"
+
+#, c-format
+msgid "no changelog available for '%s'.\n"
+msgstr "nu exista istoric modificări pentru '%s'.\n"
+
+#, c-format
+msgid "options"
+msgstr "opțiuni"
+
+#, c-format
+msgid "file(s)"
+msgstr "fișier(e)"
+
+#, c-format
+msgid "package(s)"
+msgstr "pachet(e)"
+
+#, c-format
+msgid "usage"
+msgstr "utilizare"
+
+#, c-format
+msgid "operation"
+msgstr "operațiune"
+
+#, c-format
+msgid "operations:\n"
+msgstr "operațiuni:\n"
+
+#, c-format
+msgid ""
+"\n"
+"use '%s {-h --help}' with an operation for available options\n"
+msgstr ""
+"\n"
+"folosește '%s {-h --help}' cu o operațiune pentru opțiunile disponibile\n"
+
+#, c-format
+msgid ""
+" -c, --cascade remove packages and all packages that depend on them\n"
+msgstr ""
+" -c, --cascade elimină pachete precum și toate pachetele care depind "
+"de ele\n"
+"\n"
+
+#, c-format
+msgid " -n, --nosave remove configuration files\n"
+msgstr " -n, --nosave elimină fișierele de configurare\n"
+
+#, c-format
+msgid ""
+" -s, --recursive remove unnecessary dependencies\n"
+" (-ss includes explicitly installed dependencies)\n"
+msgstr ""
+" -s, --recursive elimina dependențele inutile\n"
+" (-ss include dependețele instalate explicit\n"
+
+#, c-format
+msgid " -u, --unneeded remove unneeded packages\n"
+msgstr " -u, --unneeded eliminină pachetele care nu sunt necesare\n"
+
+#, c-format
+msgid " -c, --changelog view the changelog of a package\n"
+msgstr " -c, --changelog vezi istoricul de modificări al pachetului\n"
+
+#, c-format
+msgid ""
+" -d, --deps list packages installed as dependencies [filter]\n"
+msgstr ""
+" -d, --deps listează pachetele instalate ca dependențe [filtru]\n"
+
+#, c-format
+msgid " -e, --explicit list packages explicitly installed [filter]\n"
+msgstr ""
+" -e, --explicit listează pachetele instalate în mod explicit "
+"[filtru]\n"
+
+#, c-format
+msgid " -g, --groups view all members of a package group\n"
+msgstr " -g, --groups vezi toți membrii unui grup de pachete\n"
+
+#, c-format
+msgid ""
+" -i, --info view package information (-ii for backup files)\n"
+msgstr ""
+" -i, --info vezi informațiile despre pachet (-ii pentru fișierele "
+"backup)\n"
+
+#, c-format
+msgid ""
+" -k, --check check that the files owned by the package(s) are "
+"present\n"
+msgstr ""
+" -k, --check verifică dacă fișierele ce aparțin pachetului(elor) "
+"sunt prezente\n"
+
+#, c-format
+msgid " -l, --list list the contents of the queried package\n"
+msgstr " -l, --list listează conținutul pachetelor interogate\n"
+
+#, c-format
+msgid ""
+" -m, --foreign list installed packages not found in sync db(s) "
+"[filter]\n"
+msgstr ""
+" -m, --foreign listează pachetele instalate ce nu se găsesc în "
+"bazele de date ale depozitelor [filtru]\n"
+
+#, c-format
+msgid " -o, --owns <file> query the package that owns <file>\n"
+msgstr " -o, --owns <fișier> interoghează pachetul care deține <fișier>\n"
+
+#, c-format
+msgid " -p, --file <package> query a package file instead of the database\n"
+msgstr ""
+" -p, --file <pachet> interoghează un fișier pachet în locul bazei de date\n"
+
+#, c-format
+msgid " -q, --quiet show less information for query and search\n"
+msgstr ""
+" -q, --quiet arată mai puține informații pentru interogare și "
+"căutare\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search locally-installed packages for matching "
+"strings\n"
+msgstr ""
+" -s, --search <regex> caută pachete instalate local care se potrivesc "
+"șirurilor de caractere\n"
+
+#, c-format
+msgid ""
+" -t, --unrequired list packages not required by any package [filter]\n"
+msgstr ""
+" -t, --unrequired listează pachetele care nu sunt necesare niciunui "
+"pachet [filtru]\n"
+
+#, c-format
+msgid " -u, --upgrades list outdated packages [filter]\n"
+msgstr " -u, --upgrades listează pachetele învechite [filtru]\n"
+
+#, c-format
+msgid ""
+" -c, --clean remove old packages from cache directory (-cc for "
+"all)\n"
+msgstr ""
+" -c, --clean elimină pachetele vechi din directorul cache (-cc "
+"pentru toate)\n"
+
+#, c-format
+msgid " -i, --info view package information\n"
+msgstr " -i, --info vezi informații despre pachet\n"
+
+#, c-format
+msgid " -l, --list <repo> view a list of packages in a repo\n"
+msgstr " -l, --list <repo> vezi o listă a pachetelor dintr-un depozit\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search remote repositories for matching strings\n"
+msgstr ""
+" -s, --search <regex> caută în depozitele la distanță potriviri cu șirurile "
+"de caractere\n"
+
+#, c-format
+msgid ""
+" -u, --sysupgrade upgrade installed packages (-uu allows downgrade)\n"
+msgstr ""
+" -u, --sysupgrade actualizează pachetele instalate (-uu permite "
+"retrogradarea)\n"
+
+#, c-format
+msgid ""
+" -w, --downloadonly download packages but do not install/upgrade "
+"anything\n"
+msgstr ""
+" -w, --downloadonly descarcă pachete dar nu instalează/actualizează "
+"nimic\n"
+
+#, c-format
+msgid ""
+" -y, --refresh download fresh package databases from the server\n"
+msgstr ""
+" -y, --refresh descarcă baze de date cu pachete proaspete de pe "
+"server\n"
+
+#, c-format
+msgid " --needed don't reinstall up to date packages\n"
+msgstr " --needed nu reinstala pachetele actualizate\n"
+
+#, c-format
+msgid " --asdeps mark packages as non-explicitly installed\n"
+msgstr " --asdeps marchează pachete ca instalate ne-explicit\n"
+
+#, c-format
+msgid " --asexplicit mark packages as explicitly installed\n"
+msgstr ""
+" --asexplicit marchează pachete ca instalate în mod explicit\n"
+
+#, c-format
+msgid " -f, --force force install, overwrite conflicting files\n"
+msgstr ""
+" -f, --force instalare forțată, suprascrie fișierele aflate în "
+"conflict\n"
+
+#, c-format
+msgid " --asdeps install packages as non-explicitly installed\n"
+msgstr " --asdeps instalează pachete ca instalate ne-explicit\n"
+
+#, c-format
+msgid " --asexplicit install packages as explicitly installed\n"
+msgstr ""
+" --asexplicit instalează pachete ca instalate în mod explicit\n"
+
+#, c-format
+msgid ""
+" --ignore <pkg> ignore a package upgrade (can be used more than "
+"once)\n"
+msgstr ""
+" --ignore <pachet> ignoră actualizările unui pachet (se poate folosi "
+"mai mult de o dată)\n"
+
+#, c-format
+msgid ""
+" --ignoregroup <grp>\n"
+" ignore a group upgrade (can be used more than once)\n"
+msgstr ""
+" --ignoregroup <grp>\n"
+" ignoră o actualizările unui grup (se poate folosi mai "
+"mult de o dată)\n"
+
+#, c-format
+msgid ""
+" -d, --nodeps skip dependency version checks (-dd to skip all "
+"checks)\n"
+msgstr ""
+" -d, --nodeps se omite verificare versiunii dependențelor (-dd "
+"pentru a omite toate verificările\n"
+
+#, c-format
+msgid ""
+" -k, --dbonly only modify database entries, not package files\n"
+msgstr ""
+" -k, --dbonly modifică doar intrarea în baza de date, nu și "
+"fișierele pachetelor\n"
+
+#, c-format
+msgid ""
+" --noprogressbar do not show a progress bar when downloading files\n"
+msgstr ""
+" --noprogressbar nu afișa bara de progres la descărcarea fișierelor\n"
+
+#, c-format
+msgid ""
+" --noscriptlet do not execute the install scriptlet if one exists\n"
+msgstr ""
+" --noscriptlet nu executa scriptlet-ul de instalare dacă există deja "
+"unul\n"
+
+#, c-format
+msgid ""
+" --print print the targets instead of performing the "
+"operation\n"
+msgstr ""
+" --print afișeaza țintele în loc de a efectua operațiunea\n"
+
+#, c-format
+msgid ""
+" --print-format <string>\n"
+" specify how the targets should be printed\n"
+msgstr ""
+" --print-format <șir>\n"
+" specifică cum vor fi afișate țintele\n"
+
+#, c-format
+msgid " -b, --dbpath <path> set an alternate database location\n"
+msgstr " -b, --dbpath <cale> seteaza o locație alternativă a bazei de date\n"
+
+#, c-format
+msgid " -r, --root <path> set an alternate installation root\n"
+msgstr " -r, --root <cale> setează o cale de instalare alternativă\n"
+
+#, c-format
+msgid " -v, --verbose be verbose\n"
+msgstr " -v, --verbose forțat să fie mai detaliat\n"
+
+#, c-format
+msgid " --arch <arch> set an alternate architecture\n"
+msgstr " --arch <arhit> setează o arhitectură alternativă\n"
+
+#, c-format
+msgid " --cachedir <dir> set an alternate package cache location\n"
+msgstr ""
+" --cachedir <dir> setează o locație alternativă pentru cache-ul "
+"pachetului\n"
+
+#, c-format
+msgid " --config <path> set an alternate configuration file\n"
+msgstr " --config <cale> setează un fișier de configurare alternativ\n"
+
+#, c-format
+msgid " --debug display debug messages\n"
+msgstr " --debug afișează mesaje de depanare\n"
+
+#, fuzzy, c-format
+msgid " --gpgdir <path> set an alternate home directory for GnuPG\n"
+msgstr " --logfile <cale> setează un fișier log alternativ\n"
+
+#, c-format
+msgid " --logfile <path> set an alternate log file\n"
+msgstr " --logfile <cale> setează un fișier log alternativ\n"
+
+#, c-format
+msgid " --noconfirm do not ask for any confirmation\n"
+msgstr " --noconfirm nu cere nicio confirmare\n"
+
+#, c-format
+msgid ""
+" This program may be freely redistributed under\n"
+" the terms of the GNU General Public License.\n"
+msgstr ""
+" Acest program poate fi redistribuit liber sub\n"
+" termenii licenței GNU - General Public License.\n"
+
+#, c-format
+msgid "'%s' is not a valid debug level\n"
+msgstr "'%s' nu este un nivel valid pentru depanare\n"
+
+#, c-format
+msgid "only one operation may be used at a time\n"
+msgstr "doar o operațiune poate fi utilizată în același timp\n"
+
+#, c-format
+msgid "invalid option\n"
+msgstr "opțiune nevalidă\n"
+
+#, c-format
+msgid "buffer overflow detected in arg parsing\n"
+msgstr "buffer supraplin detectat în procesarea arg\n"
+
+#, c-format
+msgid "failed to reopen stdin for reading: (%s)\n"
+msgstr "nu s-a putut redeschide stdin pentru citire: (%s)\n"
+
+#, c-format
+msgid "you cannot perform this operation unless you are root.\n"
+msgstr "nu puteți efectua această operațiune decât dacă sunteți root.\n"
+
+#, c-format
+msgid "no operation specified (use -h for help)\n"
+msgstr "nu este specificată nicio operațiune (folosiți -h pentru ajutor)\n"
+
+#, c-format
+msgid "%s is owned by %s %s\n"
+msgstr "%s este deținut de către %s %s\n"
+
+#, c-format
+msgid "no file was specified for --owns\n"
+msgstr "nu este specificat niciun fișier pentru --owns\n"
+
+#, c-format
+msgid "failed to find '%s' in PATH: %s\n"
+msgstr "eșec la căutarea '%s' în PATH: %s\n"
+
+#, c-format
+msgid "failed to read file '%s': %s\n"
+msgstr "eșec la citirea fișierului '%s': %s\n"
+
+#, c-format
+msgid "cannot determine ownership of directory '%s'\n"
+msgstr "nu s-a putut determina cine deține directorul '%s'\n"
+
+#, c-format
+msgid "cannot determine real path for '%s': %s\n"
+msgstr "nu poate fi determinată calea reală pentru '%s': %s\n"
+
+#, c-format
+msgid "path too long: %s%s\n"
+msgstr "cale prea lungă: %s%s\n"
+
+#, c-format
+msgid "No package owns %s\n"
+msgstr ""
+"Niciun pachet nu deține %s\n"
+"\n"
+
+#, c-format
+msgid "group \"%s\" was not found\n"
+msgstr "grupul \"%s\" nu a fost găsit\n"
+
+#, c-format
+msgid "%s: %d total file, "
+msgid_plural "%s: %d total files, "
+msgstr[0] "%s: %d fișier în total. "
+msgstr[1] "%s: %d fișiere în total. "
+msgstr[2] "%s: %d fișiere în total. "
+
+#, c-format
+msgid "%d missing file\n"
+msgid_plural "%d missing files\n"
+msgstr[0] "%d fișier lipsă\n"
+msgstr[1] "%d fișiere lipsă\n"
+msgstr[2] "%d fișiere lipsă\n"
+
+#, c-format
+msgid "no usable package repositories configured.\n"
+msgstr "nu sunt configurate depozite de pachete utilizabile.\n"
+
+#, c-format
+msgid "package \"%s\" not found\n"
+msgstr "pachetul \"%s\" nu a fost găsit\n"
+
+#, c-format
+msgid "failed to prepare transaction (%s)\n"
+msgstr "eșec în pregătirea tranzacției (%s)\n"
+
+#, c-format
+msgid ":: package %s does not have a valid architecture\n"
+msgstr ""
+":: pachetul %s nu are o arhitectură validă\n"
+"\n"
+
+#, c-format
+msgid ":: %s: requires %s\n"
+msgstr ":: %s: cere %s\n"
+
+#, c-format
+msgid "%s is designated as a HoldPkg.\n"
+msgstr "%s este desemnat ca un HoldPkg.\n"
+
+#, c-format
+msgid "HoldPkg was found in target list. Do you want to continue?"
+msgstr "HoldPkg a fost găsit în lista țintă. Continuăm?"
+
+#, c-format
+msgid " there is nothing to do\n"
+msgstr " nu e nimic de făcut\n"
+
+#, c-format
+msgid "Do you want to remove these packages?"
+msgstr "Vreți să eliminați aceste pachete?"
+
+#, c-format
+msgid "failed to commit transaction (%s)\n"
+msgstr "eșec la efectuarea tranzacției (%s)\n"
+
+#, c-format
+msgid "could not access database directory\n"
+msgstr "nu poate fi accesat directorul bazei de date\n"
+
+#, c-format
+msgid "could not remove %s\n"
+msgstr "nu s-a putut elimina %s\n"
+
+#, c-format
+msgid "Do you want to remove %s?"
+msgstr "Vreți să eliminați %s?"
+
+#, c-format
+msgid "Database directory: %s\n"
+msgstr "Directorul bazei de date: %s\n"
+
+#, c-format
+msgid "Do you want to remove unused repositories?"
+msgstr "Vreți să eliminați depozitele nefolosite?"
+
+#, c-format
+msgid "Database directory cleaned up\n"
+msgstr "Directorul bazei de date curățat\n"
+
+#, c-format
+msgid "Cache directory: %s\n"
+msgstr "Directorul cache: %s\n"
+
+#, c-format
+msgid "Packages to keep:\n"
+msgstr "Pachete de păstrat:\n"
+
+#, c-format
+msgid " All locally installed packages\n"
+msgstr " Toate pachetele instalate\n"
+
+#, c-format
+msgid " All current sync database packages\n"
+msgstr " Toate pachetele din baza de date\n"
+
+#, c-format
+msgid "Do you want to remove all other packages from cache?"
+msgstr "Doriți să eliminați toate celelalte pachete din cache?"
+
+#, c-format
+msgid "removing old packages from cache...\n"
+msgstr "se elimină pachetele vechi din cache... \n"
+
+#, c-format
+msgid "Do you want to remove ALL files from cache?"
+msgstr "Vreți să eliminați TOATE fișierele din cache?"
+
+#, c-format
+msgid "removing all files from cache...\n"
+msgstr "se elimină toate fișierele din cache... \n"
+
+#, c-format
+msgid "could not access cache directory %s\n"
+msgstr "nu poate fi accesat directorul cache %s\n"
+
+#, c-format
+msgid "File %s does not seem to be a valid package, remove it?"
+msgstr "Fișierul %s nu pare a fi un pachet valid, se elimină?"
+
+#, c-format
+msgid "failed to update %s (%s)\n"
+msgstr "eșec la actualizarea %s (%s)\n"
+
+#, c-format
+msgid " %s is up to date\n"
+msgstr " %s este actualizat\n"
+
+#, c-format
+msgid "failed to synchronize any databases\n"
+msgstr "eșec la sincronizarea tuturor bazelor de date\n"
+
+#, c-format
+msgid "installed"
+msgstr "instalat"
+
+#, c-format
+msgid "repository '%s' does not exist\n"
+msgstr "depozitul '%s' nu există\n"
+
+#, c-format
+msgid "package '%s' was not found in repository '%s'\n"
+msgstr "pachetul '%s' nu a fost găsit în depozitul '%s'\n"
+
+#, c-format
+msgid "package '%s' was not found\n"
+msgstr "pachetul '%s' nu a fost găsit\n"
+
+#, c-format
+msgid "repository \"%s\" was not found.\n"
+msgstr "depozitul \"%s\" nu a fost găsit.\n"
+
+#, c-format
+msgid "skipping target: %s\n"
+msgstr "se omite ținta: %s\n"
+
+#, c-format
+msgid "target not found: %s\n"
+msgstr "nu s-a găsit ținta: %s\n"
+
+#, c-format
+msgid ":: There are %d members in group %s:\n"
+msgstr ":: Există %d membri în grupul %s:\n"
+
+#, c-format
+msgid "database not found: %s\n"
+msgstr "nu s-a găsit baza de date: %s\n"
+
+#, c-format
+msgid ":: Starting full system upgrade...\n"
+msgstr ":: Se pornește actualizarea completă a sistemului...\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict\n"
+msgstr ":: %s și %s sunt în conflict\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s)\n"
+msgstr ":: %s și %s sunt în conflict (%s)\n"
+
+#, c-format
+msgid "Proceed with download?"
+msgstr "Începe descărcarea?"
+
+#, c-format
+msgid "Proceed with installation?"
+msgstr "Începe instalarea?"
+
+#, c-format
+msgid "%s exists in both '%s' and '%s'\n"
+msgstr "%s există şi în '%s' şi în '%s'\n"
+
+#, c-format
+msgid "%s: %s exists in filesystem\n"
+msgstr ""
+"%s: %s există în sistemul de fișiere\n"
+"\n"
+
+#, c-format
+msgid "%s is invalid or corrupted\n"
+msgstr "%s este nevalid sau corupt\n"
+
+#, c-format
+msgid "Errors occurred, no packages were upgraded.\n"
+msgstr "Au apărut erori, niciun pachet nu a fost actualizat.\n"
+
+#, c-format
+msgid ":: Synchronizing package databases...\n"
+msgstr ":: Se sincronizează bazele de date cu pachete...\n"
+
+#, c-format
+msgid ":: The following packages should be upgraded first :\n"
+msgstr ":: Următoarele pachete ar trebui actualizate mai întai :\n"
+
+#, c-format
+msgid ""
+":: Do you want to cancel the current operation\n"
+":: and upgrade these packages now?"
+msgstr ""
+":: Vreți să întrerupeți operațiunea curentă\n"
+":: și să actualizați aceste pachete acum?"
+
+#, c-format
+msgid "failed to init transaction (%s)\n"
+msgstr "eșec la initializarea tranzacției (%s)\n"
+
+#, c-format
+msgid ""
+" if you're sure a package manager is not already\n"
+" running, you can remove %s\n"
+msgstr ""
+" dacă sunteți sigur că niciun manager de pachete\n"
+" nu este activ, atunci eliminați %s\n"
+
+#, c-format
+msgid " try running pacman-db-upgrade\n"
+msgstr " încercați să lansați pacman-db-upgrade\n"
+
+#, c-format
+msgid "failed to release transaction (%s)\n"
+msgstr "eșec la realizarea tranzacției (%s)\n"
+
+#, c-format
+msgid "None"
+msgstr "Niciunul"
+
+#, c-format
+msgid "insufficient columns available for table display\n"
+msgstr ""
+
+#, c-format
+msgid "Name"
+msgstr ""
+
+#, c-format
+msgid "Old Version"
+msgstr ""
+
+#, c-format
+msgid "New Version"
+msgstr ""
+
+#, c-format
+msgid "Size"
+msgstr ""
+
+#, c-format
+msgid "Targets (%d):"
+msgstr "Ținte (%d):"
+
+#, c-format
+msgid "Remove (%d):"
+msgstr "Elimină (%d):"
+
+#, fuzzy, c-format
+msgid "Total Download Size: %.2f %s\n"
+msgstr "Mărimea totală a descărcării: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Installed Size: %.2f %s\n"
+msgstr "Mărimea totală a instalării: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Net Upgrade Size: %.2f %s\n"
+msgstr "Mărimea totală a descărcării: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Removed Size: %.2f %s\n"
+msgstr "Mărimea totală a eliminării: %.2f MB\n"
+
+#, c-format
+msgid "New optional dependencies for %s\n"
+msgstr "Noi dependențe opționale pentru %s\n"
+
+#, c-format
+msgid "Optional dependencies for %s\n"
+msgstr "Dependențe opționale pentru %s\n"
+
+#, c-format
+msgid "Repository %s\n"
+msgstr "Depozitul %s\n"
+
+#, c-format
+msgid "Invalid value: %d is not between %d and %d\n"
+msgstr "Valoare nevalidă: %d nu se află între %d și %d\n"
+
+#, c-format
+msgid "Invalid number: %s\n"
+msgstr "Număr nevalid: %s\n"
+
+#, c-format
+msgid "Enter a selection (default=all)"
+msgstr "Introduceți o selecție (implicit = toate)"
+
+#, c-format
+msgid "Enter a number (default=%d)"
+msgstr "Introduceți un număr (implicit = %d)"
+
+#, c-format
+msgid "[Y/n]"
+msgstr "[D/n]"
+
+#, c-format
+msgid "[y/N]"
+msgstr "[d/N]"
+
+#, c-format
+msgid "Y"
+msgstr "D"
+
+#, c-format
+msgid "YES"
+msgstr "DA"
+
+#, c-format
+msgid "N"
+msgstr "N"
+
+#, c-format
+msgid "NO"
+msgstr "NU"
+
+#, c-format
+msgid "failed to allocate string\n"
+msgstr "Eșuare la alocarea șirului\n"
+
+#, c-format
+msgid "error: %s"
+msgstr "eroare: %s"
+
+#, c-format
+msgid "warning: %s"
+msgstr "avertisment: %s"
+
+#, c-format
+msgid "error: "
+msgstr "eroare: "
+
+#, c-format
+msgid "warning: "
+msgstr "avertisment: "
+
diff --git a/src/pacman/po/ru.po b/src/pacman/po/ru.po
new file mode 100644
index 00000000..32a0a37b
--- /dev/null
+++ b/src/pacman/po/ru.po
@@ -0,0 +1,1133 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Pacman Development Team <pacman-dev@archlinux.org>
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Arch Linux Pacman package manager\n"
+"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
+"POT-Creation-Date: 2011-06-23 21:59-0500\n"
+"PO-Revision-Date: 2011-04-13 16:07+0000\n"
+"Last-Translator: vdk <vdk@gmx.us>\n"
+"Language-Team: Russian <None>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
+
+#, c-format
+msgid "checking dependencies...\n"
+msgstr "проверка зависимостей...\n"
+
+#, c-format
+msgid "checking for file conflicts...\n"
+msgstr "проверка возможных конфликтов файлов...\n"
+
+#, c-format
+msgid "resolving dependencies...\n"
+msgstr "разрешение зависимостей...\n"
+
+#, c-format
+msgid "looking for inter-conflicts...\n"
+msgstr "проверка на взаимную несовместимость...\n"
+
+#, c-format
+msgid "installing %s...\n"
+msgstr "установка %s...\n"
+
+#, c-format
+msgid "removing %s...\n"
+msgstr "удаление %s...\n"
+
+#, c-format
+msgid "upgrading %s...\n"
+msgstr "обновление %s...\n"
+
+#, c-format
+msgid "checking package integrity...\n"
+msgstr "проверка целостности пакета...\n"
+
+#, c-format
+msgid "checking delta integrity...\n"
+msgstr "проверка целостности дельты...\n"
+
+#, c-format
+msgid "applying deltas...\n"
+msgstr "применение дельт...\n"
+
+#, c-format
+msgid "generating %s with %s... "
+msgstr "создание %s с помощью %s..."
+
+#, c-format
+msgid "success!\n"
+msgstr "завершено успешно!\n"
+
+#, c-format
+msgid "failed.\n"
+msgstr "не удалось.\n"
+
+#, c-format
+msgid ":: Retrieving packages from %s...\n"
+msgstr ":: Получение пакетов с %s...\n"
+
+#, c-format
+msgid "checking available disk space...\n"
+msgstr "проверяется доступное место...\n"
+
+#, c-format
+msgid ":: %s is in IgnorePkg/IgnoreGroup. Install anyway?"
+msgstr ":: %s указан в IgnorePkg/IgnoreGroup. Всё равно установить?"
+
+#, c-format
+msgid ":: Replace %s with %s/%s?"
+msgstr ":: Заменить %s на %s/%s?"
+
+#, c-format
+msgid ":: %s and %s are in conflict. Remove %s?"
+msgstr ":: %s и %s конфликтуют. Удалить %s?"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s). Remove %s?"
+msgstr ":: %s и %s конфликтуют (%s). Удалить %s?"
+
+#, c-format
+msgid ""
+":: The following package cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgid_plural ""
+":: The following packages cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgstr[0] ""
+":: Этот пакет не может быть обновлен из-за неразрешимых зависимостей:\n"
+msgstr[1] ""
+":: Эти пакеты не могут быть обновлены из-за неразрешимых зависимостей:\n"
+msgstr[2] ""
+":: Эти пакеты не могут быть обновлены из-за неразрешимых зависимостей:\n"
+
+#, c-format
+msgid "Do you want to skip the above package for this upgrade?"
+msgid_plural "Do you want to skip the above packages for this upgrade?"
+msgstr[0] "Вы уверены что хотите пропустить этот пакет при обновлении?"
+msgstr[1] "Вы уверены что хотите пропустить эти пакеты при обновлении?"
+msgstr[2] "Вы уверены что хотите пропустить эти пакеты при обновлении?"
+
+#, c-format
+msgid ":: There are %d providers available for %s:\n"
+msgstr ":: Существует %d вариантов для %s:\n"
+
+#, c-format
+msgid ":: %s-%s: local version is newer. Upgrade anyway?"
+msgstr ":: %s-%s: установленная версия новее. Всё равно обновить?"
+
+#, c-format
+msgid ":: File %s is corrupted. Do you want to delete it?"
+msgstr ":: Файл %s поврежден. Хотите его удалить?"
+
+#, c-format
+msgid "installing"
+msgstr "установка"
+
+#, c-format
+msgid "upgrading"
+msgstr "обновление"
+
+#, c-format
+msgid "removing"
+msgstr "удаление"
+
+#, c-format
+msgid "checking for file conflicts"
+msgstr "проверка возможных конфликтов файлов"
+
+#, c-format
+msgid "checking available disk space"
+msgstr "проверяется доступное место"
+
+#, c-format
+msgid "checking package integrity"
+msgstr "проверяется целостность пакета"
+
+#, c-format
+msgid "downloading %s...\n"
+msgstr "загрузка %s...\n"
+
+#, c-format
+msgid "malloc failure: could not allocate %zd bytes\n"
+msgstr "ошибка malloc: невозможно выделить %zd байт\n"
+
+#, c-format
+msgid "could not get current working directory\n"
+msgstr "не удалось получить текущий рабочий каталог\n"
+
+#, c-format
+msgid "could not chdir to download directory %s\n"
+msgstr "не удалось перейти в каталог %s\n"
+
+#, c-format
+msgid "running XferCommand: fork failed!\n"
+msgstr "запуск XferCommand: fork failed!\n"
+
+#, c-format
+msgid "could not change directory to %s (%s)\n"
+msgstr "не удалось изменить рабочий каталог на %s (%s)\n"
+
+#, c-format
+msgid "invalid value for 'CleanMethod' : '%s'\n"
+msgstr "неверное значение для 'CleanMethod' : '%s'\n"
+
+#, c-format
+msgid ""
+"config file %s, line %d: directive '%s' in section '%s' not recognized.\n"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "config file %s, line %d: directive '%s' has invalid value '%s'\n"
+msgstr ""
+"конфигурационный файл %s, строка %d: все директивы должны находиться в "
+"секциях.\n"
+
+#, c-format
+msgid ""
+"The mirror '%s' contains the $arch variable, but no Architecture is "
+"defined.\n"
+msgstr ""
+"Зеркало '%s' содержит переменную $arch, но архитектура не определена.\n"
+
+#, c-format
+msgid "could not add server URL to database '%s': %s (%s)\n"
+msgstr "не удалось добавить адрес сервера в базу данных '%s': %s (%s)\n"
+
+#, c-format
+msgid "failed to initialize alpm library (%s)\n"
+msgstr "не удалось инициализировать библиотеку alpm (%s)\n"
+
+#, c-format
+msgid "problem setting logfile '%s' (%s)\n"
+msgstr "не удалось использовать файл журнала '%s' (%s)\n"
+
+#, fuzzy, c-format
+msgid "problem setting gpgdir '%s' (%s)\n"
+msgstr "не удалось установить корневой каталог '%s' (%s)\n"
+
+#, c-format
+msgid "could not register '%s' database (%s)\n"
+msgstr "не удалось зарегистрировать базу данных '%s' (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not set verify option for database '%s' (%s)\n"
+msgstr "не удалось добавить адрес сервера в базу данных '%s': %s (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not add mirror '%s' to database '%s' (%s)\n"
+msgstr "не удалось добавить адрес сервера в базу данных '%s': %s (%s)\n"
+
+#, c-format
+msgid "config parsing exceeded max recursion depth of %d.\n"
+msgstr ""
+
+#, c-format
+msgid "config file %s could not be read.\n"
+msgstr "не удалось прочитать конфигурационный файл %s.\n"
+
+#, c-format
+msgid "config file %s, line %d: bad section name.\n"
+msgstr "конфигурационный файл %s, строка %d: неверное название секции.\n"
+
+#, c-format
+msgid "config file %s, line %d: syntax error in config file- missing key.\n"
+msgstr ""
+"конфигурационный файл %s, строка %d: синтаксическая ошибка - пропущен ключ.\n"
+
+#, c-format
+msgid "config file %s, line %d: All directives must belong to a section.\n"
+msgstr ""
+"конфигурационный файл %s, строка %d: все директивы должны находиться в "
+"секциях.\n"
+
+#, c-format
+msgid "config file %s, line %d: directive '%s' needs a value\n"
+msgstr ""
+
+#, c-format
+msgid "no targets specified (use -h for help)\n"
+msgstr "не задано целей (для справки используйте -h)\n"
+
+#, c-format
+msgid "no install reason specified (use -h for help)\n"
+msgstr "не указана причина установки (используйте -h для помощи)\n"
+
+#, c-format
+msgid "could not set install reason for package %s (%s)\n"
+msgstr "не удалось установить причину установки для пакета %s (%s)\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'installed as dependency'\n"
+msgstr "%s: причина установки изменена на 'установлен как зависимость'\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'explicitly installed'\n"
+msgstr "%s: причина установки изменена на 'установлен явно'\n"
+
+#, c-format
+msgid "Explicitly installed"
+msgstr "Явно установлен"
+
+#, c-format
+msgid "Installed as a dependency for another package"
+msgstr "Установлен как зависимость другого пакета"
+
+#, c-format
+msgid "Unknown"
+msgstr "Неизвестно"
+
+#, c-format
+msgid "Repository :"
+msgstr "Репозиторий :"
+
+#, c-format
+msgid "Name :"
+msgstr "Название :"
+
+#, c-format
+msgid "Version :"
+msgstr "Версия :"
+
+#, c-format
+msgid "URL :"
+msgstr "URL :"
+
+#, c-format
+msgid "Licenses :"
+msgstr "Лицензии :"
+
+#, c-format
+msgid "Groups :"
+msgstr "Группы :"
+
+#, c-format
+msgid "Provides :"
+msgstr "Предоставляет :"
+
+#, c-format
+msgid "Depends On :"
+msgstr "Зависит от :"
+
+#, c-format
+msgid "Optional Deps :"
+msgstr "Дополнительно :"
+
+#, c-format
+msgid "Required By :"
+msgstr "Требуется пакетами :"
+
+#, c-format
+msgid "Conflicts With :"
+msgstr "Конфликтует с :"
+
+#, c-format
+msgid "Replaces :"
+msgstr "Заменяет :"
+
+#, fuzzy, c-format
+msgid "Download Size : %6.2f %s\n"
+msgstr "Будет загружено : %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Compressed Size: %6.2f %s\n"
+msgstr "Размер архива : %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Installed Size : %6.2f %s\n"
+msgstr "Размер установленного : %6.2f K\n"
+
+#, c-format
+msgid "Packager :"
+msgstr "Сборщик :"
+
+#, c-format
+msgid "Architecture :"
+msgstr "Архитектура :"
+
+#, c-format
+msgid "Build Date :"
+msgstr "Дата сборки :"
+
+#, c-format
+msgid "Install Date :"
+msgstr "Дата установки :"
+
+#, c-format
+msgid "Install Reason :"
+msgstr "Причина установки :"
+
+#, c-format
+msgid "Install Script :"
+msgstr "Установочный скрипт :"
+
+#, c-format
+msgid "Yes"
+msgstr "Yes"
+
+#, c-format
+msgid "No"
+msgstr "No"
+
+#, c-format
+msgid "MD5 Sum :"
+msgstr "MD5-сумма :"
+
+#, c-format
+msgid "Description :"
+msgstr "Описание :"
+
+#, c-format
+msgid "could not calculate checksums for %s\n"
+msgstr "не удалось вычислить контрольные суммы для %s\n"
+
+#, c-format
+msgid "Backup Files:\n"
+msgstr "Резервные копии файлов:\n"
+
+#, c-format
+msgid "(none)\n"
+msgstr "(пусто)\n"
+
+#, c-format
+msgid "no changelog available for '%s'.\n"
+msgstr "для '%s' нет списка изменений.\n"
+
+#, c-format
+msgid "options"
+msgstr "параметры"
+
+#, c-format
+msgid "file(s)"
+msgstr "файл(ы)"
+
+#, c-format
+msgid "package(s)"
+msgstr "пакет(ы)"
+
+#, c-format
+msgid "usage"
+msgstr "использование"
+
+#, c-format
+msgid "operation"
+msgstr "действие"
+
+#, c-format
+msgid "operations:\n"
+msgstr "действия:\n"
+
+#, c-format
+msgid ""
+"\n"
+"use '%s {-h --help}' with an operation for available options\n"
+msgstr ""
+"\n"
+"используйте '%s { -h --help}' вместе с другими операциями для просмотра "
+"параметров\n"
+
+#, c-format
+msgid ""
+" -c, --cascade remove packages and all packages that depend on them\n"
+msgstr " -c, --cascade удалить пакет и все зависящие от него пакеты\n"
+
+#, c-format
+msgid " -n, --nosave remove configuration files\n"
+msgstr " -n, --nosave удалить конфигурационный файл\n"
+
+#, c-format
+msgid ""
+" -s, --recursive remove unnecessary dependencies\n"
+" (-ss includes explicitly installed dependencies)\n"
+msgstr ""
+
+#, c-format
+msgid " -u, --unneeded remove unneeded packages\n"
+msgstr " -u, --unneeded удалить ненужные пакеты\n"
+
+#, c-format
+msgid " -c, --changelog view the changelog of a package\n"
+msgstr " -c, --changelog показать список изменений пакета\n"
+
+#, c-format
+msgid ""
+" -d, --deps list packages installed as dependencies [filter]\n"
+msgstr ""
+" -d, --deps показать все пакеты, установленные как зависимости "
+"[фильтр]\n"
+
+#, c-format
+msgid " -e, --explicit list packages explicitly installed [filter]\n"
+msgstr ""
+" -e, --explicit показать все явно установленные пакеты [фильтр]\n"
+
+#, c-format
+msgid " -g, --groups view all members of a package group\n"
+msgstr " -g, --groups показать все пакеты данной группы\n"
+
+#, c-format
+msgid ""
+" -i, --info view package information (-ii for backup files)\n"
+msgstr ""
+" -i, --info показать информацию о пакете (-ii для резервных "
+"копий)\n"
+
+#, c-format
+msgid ""
+" -k, --check check that the files owned by the package(s) are "
+"present\n"
+msgstr ""
+" -k, --check проверить, все ли файлы, принадлежащие пакету, "
+"существуют\n"
+
+#, c-format
+msgid " -l, --list list the contents of the queried package\n"
+msgstr " -l, --list показать содержимое запрашиваемого пакета\n"
+
+#, c-format
+msgid ""
+" -m, --foreign list installed packages not found in sync db(s) "
+"[filter]\n"
+msgstr ""
+" -m, --foreign показать установленные пакеты, не найденные в базе"
+"(ах) данных [фильтр]\n"
+
+#, c-format
+msgid " -o, --owns <file> query the package that owns <file>\n"
+msgstr " -o, --owns <файл> найти пакет, содержащий <файл>\n"
+
+#, c-format
+msgid " -p, --file <package> query a package file instead of the database\n"
+msgstr ""
+" -p, --file <пакет> извлечь информацию из файла пакета, а не из базы "
+"данных\n"
+
+#, c-format
+msgid " -q, --quiet show less information for query and search\n"
+msgstr ""
+" -q, --quiet показывать меньше информации при запросах и поиске\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search locally-installed packages for matching "
+"strings\n"
+msgstr ""
+" -s, --search <regex> искать указанную строку в локально установленных "
+"пакетах\n"
+
+#, c-format
+msgid ""
+" -t, --unrequired list packages not required by any package [filter]\n"
+msgstr ""
+" -t, --unrequired показать все пакеты, не используемые ни одним пакетом "
+"[фильтр]\n"
+
+#, c-format
+msgid " -u, --upgrades list outdated packages [filter]\n"
+msgstr " -u, --upgrades показать список устаревших пакетов [фильтр]\n"
+
+#, c-format
+msgid ""
+" -c, --clean remove old packages from cache directory (-cc for "
+"all)\n"
+msgstr " -c, --clean удалить старые пакеты из кэша (-cc для всех)\n"
+
+#, c-format
+msgid " -i, --info view package information\n"
+msgstr " -i, --info показать информацию о пакете\n"
+
+#, c-format
+msgid " -l, --list <repo> view a list of packages in a repo\n"
+msgstr " -l, --list <repo> показать все пакеты из этого репозитория\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search remote repositories for matching strings\n"
+msgstr ""
+" -s, --search <regex> искать указанную строку в удаленных репозиториях\n"
+
+#, c-format
+msgid ""
+" -u, --sysupgrade upgrade installed packages (-uu allows downgrade)\n"
+msgstr ""
+" -u, --sysupgrade обновить установленные пакеты(-uu включает откат)\n"
+
+#, c-format
+msgid ""
+" -w, --downloadonly download packages but do not install/upgrade "
+"anything\n"
+msgstr ""
+" -w, --downloadonly загрузить пакеты с сервера, но не устанавливать\n"
+
+#, c-format
+msgid ""
+" -y, --refresh download fresh package databases from the server\n"
+msgstr ""
+" -y, --refresh загрузить свежие базы данных пакетов с сервера\n"
+
+#, c-format
+msgid " --needed don't reinstall up to date packages\n"
+msgstr " --needed обновлять только устаревшие пакеты\n"
+
+#, c-format
+msgid " --asdeps mark packages as non-explicitly installed\n"
+msgstr " --asdeps отметить пакеты как неявно установленные\n"
+
+#, c-format
+msgid " --asexplicit mark packages as explicitly installed\n"
+msgstr " --asexplicit отметить пакеты как явно установленные\n"
+
+#, c-format
+msgid " -f, --force force install, overwrite conflicting files\n"
+msgstr ""
+" -f, --force принудительная установка, перезаписывать "
+"конфликтующие файлы\n"
+
+#, c-format
+msgid " --asdeps install packages as non-explicitly installed\n"
+msgstr " --asdeps установить пакеты как неявно установленные\n"
+
+#, c-format
+msgid " --asexplicit install packages as explicitly installed\n"
+msgstr " --asexplicit установить пакеты как явно установленные\n"
+
+#, c-format
+msgid ""
+" --ignore <pkg> ignore a package upgrade (can be used more than "
+"once)\n"
+msgstr ""
+" --ignore <пакет> пропустить пакет при обновлении (может быть "
+"использовано неоднократно)\n"
+
+#, c-format
+msgid ""
+" --ignoregroup <grp>\n"
+" ignore a group upgrade (can be used more than once)\n"
+msgstr ""
+" --ignoregroup <группа>\n"
+" пропустить группу при обновлении (может быть "
+"использовано неоднократно)\n"
+
+#, c-format
+msgid ""
+" -d, --nodeps skip dependency version checks (-dd to skip all "
+"checks)\n"
+msgstr ""
+" -d, --nodeps пропостить проверку версий (-dd пропускает все "
+"проверки)\n"
+
+#, c-format
+msgid ""
+" -k, --dbonly only modify database entries, not package files\n"
+msgstr ""
+" -k, --dbonly изменить только записи в базе данных, не файлы "
+"пакета\n"
+
+#, c-format
+msgid ""
+" --noprogressbar do not show a progress bar when downloading files\n"
+msgstr ""
+" --noprogressbar не показывать индикатор выполнения при загрузке\n"
+
+#, c-format
+msgid ""
+" --noscriptlet do not execute the install scriptlet if one exists\n"
+msgstr ""
+" --noscriptlet не запускать установочные скрипты, если они есть\n"
+
+#, c-format
+msgid ""
+" --print print the targets instead of performing the "
+"operation\n"
+msgstr " --print вывести цели вместо реального исполнения\n"
+
+#, c-format
+msgid ""
+" --print-format <string>\n"
+" specify how the targets should be printed\n"
+msgstr ""
+" --print-format <строка>\n"
+" укажите формат вывода целей\n"
+
+#, c-format
+msgid " -b, --dbpath <path> set an alternate database location\n"
+msgstr ""
+" -b, --dbpath <путь> указать альтернативное расположение базы данных\n"
+
+#, c-format
+msgid " -r, --root <path> set an alternate installation root\n"
+msgstr " -r, --root <путь> указать альтернативный корневой каталог\n"
+
+#, c-format
+msgid " -v, --verbose be verbose\n"
+msgstr " -v, --verbose выводить больше информации\n"
+
+#, c-format
+msgid " --arch <arch> set an alternate architecture\n"
+msgstr " --arch <arch> установить альтернативную архитектуру\n"
+
+#, c-format
+msgid " --cachedir <dir> set an alternate package cache location\n"
+msgstr " --cachedir <каталог> указать альтернативное расположение кэша\n"
+
+#, c-format
+msgid " --config <path> set an alternate configuration file\n"
+msgstr ""
+" --config <путь> использовать альтернативный конфигурационный файл\n"
+
+#, c-format
+msgid " --debug display debug messages\n"
+msgstr " --debug показывать отладочные сообщения\n"
+
+#, fuzzy, c-format
+msgid " --gpgdir <path> set an alternate home directory for GnuPG\n"
+msgstr " --logfile <путь> использовать альтернативный файл журнала\n"
+
+#, c-format
+msgid " --logfile <path> set an alternate log file\n"
+msgstr " --logfile <путь> использовать альтернативный файл журнала\n"
+
+#, c-format
+msgid " --noconfirm do not ask for any confirmation\n"
+msgstr " --noconfirm не спрашивать подтверждения\n"
+
+#, c-format
+msgid ""
+" This program may be freely redistributed under\n"
+" the terms of the GNU General Public License.\n"
+msgstr ""
+" Эта программа может свободно распространяться\n"
+" на условиях GNU General Public License\n"
+
+#, c-format
+msgid "'%s' is not a valid debug level\n"
+msgstr "'%s' - неверный уровень отладки\n"
+
+#, c-format
+msgid "only one operation may be used at a time\n"
+msgstr "одновременно может выполняться только одна операция\n"
+
+#, c-format
+msgid "invalid option\n"
+msgstr "несуществующий параметр\n"
+
+#, c-format
+msgid "buffer overflow detected in arg parsing\n"
+msgstr "обнаружено переполнение буфера при разборе аргументов\n"
+
+#, c-format
+msgid "failed to reopen stdin for reading: (%s)\n"
+msgstr "не удалось открыть заново stdin для чтения: (%s)\n"
+
+#, c-format
+msgid "you cannot perform this operation unless you are root.\n"
+msgstr ""
+"Вы не можете выполнить эту операцию, не являясь суперпользователем (root).\n"
+
+#, c-format
+msgid "no operation specified (use -h for help)\n"
+msgstr "не задана операция (для справки используйте -h)\n"
+
+#, c-format
+msgid "%s is owned by %s %s\n"
+msgstr "%s принадлежит %s %s\n"
+
+#, c-format
+msgid "no file was specified for --owns\n"
+msgstr "не был указан файл для --owns\n"
+
+#, c-format
+msgid "failed to find '%s' in PATH: %s\n"
+msgstr "не удалось найти '%s' в PATH: %s\n"
+
+#, c-format
+msgid "failed to read file '%s': %s\n"
+msgstr "не удалось прочитать файл '%s': %s\n"
+
+#, c-format
+msgid "cannot determine ownership of directory '%s'\n"
+msgstr "не удалось установить владельца каталога '%s'\n"
+
+#, c-format
+msgid "cannot determine real path for '%s': %s\n"
+msgstr "не удалось определить настоящий путь для '%s': %s\n"
+
+#, c-format
+msgid "path too long: %s%s\n"
+msgstr "путь слишком длинный: %s%s\n"
+
+#, c-format
+msgid "No package owns %s\n"
+msgstr "Ни один пакет не содержит %s\n"
+
+#, c-format
+msgid "group \"%s\" was not found\n"
+msgstr "группа \"%s\" не найдена\n"
+
+#, c-format
+msgid "%s: %d total file, "
+msgid_plural "%s: %d total files, "
+msgstr[0] "%s: всего %d файл, "
+msgstr[1] "%s: всего %d файлов, "
+msgstr[2] "%s: всего %d файлов, "
+
+#, c-format
+msgid "%d missing file\n"
+msgid_plural "%d missing files\n"
+msgstr[0] "%d отсутствующий файл\n"
+msgstr[1] "%d отсутствующие файлы\n"
+msgstr[2] "%d отсутствующие файлы\n"
+
+#, c-format
+msgid "no usable package repositories configured.\n"
+msgstr "ни один репозиторий не сконфигурирован должным образом.\n"
+
+#, c-format
+msgid "package \"%s\" not found\n"
+msgstr "пакет \"%s\" не найден\n"
+
+#, c-format
+msgid "failed to prepare transaction (%s)\n"
+msgstr "не удалось подготовить запрос (%s)\n"
+
+#, c-format
+msgid ":: package %s does not have a valid architecture\n"
+msgstr ":: пакет %s не имеет допустимой архитектуры\n"
+
+#, c-format
+msgid ":: %s: requires %s\n"
+msgstr ":: %s: требует %s\n"
+
+#, c-format
+msgid "%s is designated as a HoldPkg.\n"
+msgstr "%s указан в HoldPkg.\n"
+
+#, c-format
+msgid "HoldPkg was found in target list. Do you want to continue?"
+msgstr "Пакет из HoldPkg обнаружен в списке целей. Продолжить?"
+
+#, c-format
+msgid " there is nothing to do\n"
+msgstr " нечего выполнять\n"
+
+#, c-format
+msgid "Do you want to remove these packages?"
+msgstr "Хотите удалить эти пакеты?"
+
+#, c-format
+msgid "failed to commit transaction (%s)\n"
+msgstr "не удалось завершить запрос (%s)\n"
+
+#, c-format
+msgid "could not access database directory\n"
+msgstr "нет доступа к каталогу с базой данных\n"
+
+#, c-format
+msgid "could not remove %s\n"
+msgstr "не удалось удалить %s\n"
+
+#, c-format
+msgid "Do you want to remove %s?"
+msgstr "Хотите удалить %s?"
+
+#, c-format
+msgid "Database directory: %s\n"
+msgstr "Каталог базы данных: %s\n"
+
+#, c-format
+msgid "Do you want to remove unused repositories?"
+msgstr "Хотите удалить неиспользуемые репозитории?"
+
+#, c-format
+msgid "Database directory cleaned up\n"
+msgstr "Каталог базы данных очищен\n"
+
+#, c-format
+msgid "Cache directory: %s\n"
+msgstr "Каталог для кэша: %s\n"
+
+#, c-format
+msgid "Packages to keep:\n"
+msgstr "Пакеты, которые сохраняются:\n"
+
+#, c-format
+msgid " All locally installed packages\n"
+msgstr " Все локально установленные пакеты\n"
+
+#, c-format
+msgid " All current sync database packages\n"
+msgstr " Все не устаревшие пакеты\n"
+
+#, c-format
+msgid "Do you want to remove all other packages from cache?"
+msgstr "Вы хотите удалить все другие пакеты из кэша?"
+
+#, c-format
+msgid "removing old packages from cache...\n"
+msgstr "удаление старых пакетов из кэша...\n"
+
+#, c-format
+msgid "Do you want to remove ALL files from cache?"
+msgstr "Хотите удалить ВСЕ файлы из кэша?"
+
+#, c-format
+msgid "removing all files from cache...\n"
+msgstr "удаление всех файлов из кэша... \n"
+
+#, c-format
+msgid "could not access cache directory %s\n"
+msgstr "нет доступа к каталогу для кэша %s\n"
+
+#, c-format
+msgid "File %s does not seem to be a valid package, remove it?"
+msgstr "Файл %s не является файлом пакета, удалить его?"
+
+#, c-format
+msgid "failed to update %s (%s)\n"
+msgstr "не удалось обновить %s (%s)\n"
+
+#, c-format
+msgid " %s is up to date\n"
+msgstr " %s не устарел\n"
+
+#, c-format
+msgid "failed to synchronize any databases\n"
+msgstr "не удалось синхронизировать ни одну базу данных\n"
+
+#, c-format
+msgid "installed"
+msgstr "установлен"
+
+#, c-format
+msgid "repository '%s' does not exist\n"
+msgstr "репозиторий '%s' не существует\n"
+
+#, c-format
+msgid "package '%s' was not found in repository '%s'\n"
+msgstr "пакет '%s' не найден в репозитории '%s'\n"
+
+#, c-format
+msgid "package '%s' was not found\n"
+msgstr "пакет '%s' не найден\n"
+
+#, c-format
+msgid "repository \"%s\" was not found.\n"
+msgstr "репозиторий \"%s\" не найден.\n"
+
+#, c-format
+msgid "skipping target: %s\n"
+msgstr "пропуск цели: %s\n"
+
+#, c-format
+msgid "target not found: %s\n"
+msgstr "цель не найдена: %s\n"
+
+#, c-format
+msgid ":: There are %d members in group %s:\n"
+msgstr ""
+":: %d объектов в группе %s:\n"
+"\n"
+
+#, c-format
+msgid "database not found: %s\n"
+msgstr "база данных не найдена: %s\n"
+
+#, c-format
+msgid ":: Starting full system upgrade...\n"
+msgstr ":: Запускается полное обновление системы...\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict\n"
+msgstr ":: %s и %s конфликтуют\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s)\n"
+msgstr ":: %s и %s конфликтуют (%s)\n"
+
+#, c-format
+msgid "Proceed with download?"
+msgstr "Приступить к загрузке?"
+
+#, c-format
+msgid "Proceed with installation?"
+msgstr "Приступить к установке?"
+
+#, c-format
+msgid "%s exists in both '%s' and '%s'\n"
+msgstr "%s содержится в '%s' и в '%s'\n"
+
+#, c-format
+msgid "%s: %s exists in filesystem\n"
+msgstr "%s: %s уже существует в файловой системе\n"
+
+#, c-format
+msgid "%s is invalid or corrupted\n"
+msgstr "%s повреждён\n"
+
+#, c-format
+msgid "Errors occurred, no packages were upgraded.\n"
+msgstr "Обнаружены ошибки, пакеты не были обновлены.\n"
+
+#, c-format
+msgid ":: Synchronizing package databases...\n"
+msgstr ":: Синхронизируются базы данных пакетов...\n"
+
+#, c-format
+msgid ":: The following packages should be upgraded first :\n"
+msgstr ":: Эти пакеты будут обновлены в первую очередь :\n"
+
+#, c-format
+msgid ""
+":: Do you want to cancel the current operation\n"
+":: and upgrade these packages now?"
+msgstr ""
+":: Хотите прервать текущую операцию\n"
+":: и обновить эти пакеты сейчас?"
+
+#, c-format
+msgid "failed to init transaction (%s)\n"
+msgstr "не удалось начать запрос (%s)\n"
+
+#, c-format
+msgid ""
+" if you're sure a package manager is not already\n"
+" running, you can remove %s\n"
+msgstr ""
+" если вы уверены, что pacman не запущен, можете\n"
+" удалить %s\n"
+
+#, c-format
+msgid " try running pacman-db-upgrade\n"
+msgstr " попробуйте запустить pacman-db-upgrade\n"
+
+#, c-format
+msgid "failed to release transaction (%s)\n"
+msgstr "не удалось продолжить запрос (%s)\n"
+
+#, c-format
+msgid "None"
+msgstr "Нет"
+
+#, c-format
+msgid "insufficient columns available for table display\n"
+msgstr ""
+
+#, c-format
+msgid "Name"
+msgstr ""
+
+#, c-format
+msgid "Old Version"
+msgstr ""
+
+#, c-format
+msgid "New Version"
+msgstr ""
+
+#, c-format
+msgid "Size"
+msgstr ""
+
+#, c-format
+msgid "Targets (%d):"
+msgstr "Цели (%d):"
+
+#, c-format
+msgid "Remove (%d):"
+msgstr "Удалить (%d):"
+
+#, fuzzy, c-format
+msgid "Total Download Size: %.2f %s\n"
+msgstr "Размер загружаемых файлов: %.2f МБ\n"
+
+#, fuzzy, c-format
+msgid "Total Installed Size: %.2f %s\n"
+msgstr "Размер устанавливаемых файлов: %.2f МБ\n"
+
+#, fuzzy, c-format
+msgid "Net Upgrade Size: %.2f %s\n"
+msgstr "Размер загружаемых файлов: %.2f МБ\n"
+
+#, fuzzy, c-format
+msgid "Total Removed Size: %.2f %s\n"
+msgstr "Размер удаляемых файлов: %.2f МБ\n"
+
+#, c-format
+msgid "New optional dependencies for %s\n"
+msgstr "Новые дополнительные зависимости для %s\n"
+
+#, c-format
+msgid "Optional dependencies for %s\n"
+msgstr "Дополнительные зависимости для %s\n"
+
+#, c-format
+msgid "Repository %s\n"
+msgstr "Репозиторий %s\n"
+
+#, c-format
+msgid "Invalid value: %d is not between %d and %d\n"
+msgstr "Неверное значение: %d не между %d и %d\n"
+
+#, c-format
+msgid "Invalid number: %s\n"
+msgstr "Неверный номер: %s\n"
+
+#, c-format
+msgid "Enter a selection (default=all)"
+msgstr "Выберите вариант (по умолчанию=все)"
+
+#, c-format
+msgid "Enter a number (default=%d)"
+msgstr "Введите число (по-умолчанию=%d)"
+
+#, c-format
+msgid "[Y/n]"
+msgstr "[Y/n]"
+
+#, c-format
+msgid "[y/N]"
+msgstr "[y/N]"
+
+#, c-format
+msgid "Y"
+msgstr "Y"
+
+#, c-format
+msgid "YES"
+msgstr "YES"
+
+#, c-format
+msgid "N"
+msgstr "N"
+
+#, c-format
+msgid "NO"
+msgstr "NO"
+
+#, c-format
+msgid "failed to allocate string\n"
+msgstr "не удалось выделить строку\n"
+
+#, c-format
+msgid "error: %s"
+msgstr "ошибка: %s"
+
+#, c-format
+msgid "warning: %s"
+msgstr "предупреждение: %s"
+
+#, c-format
+msgid "error: "
+msgstr "ошибка: "
+
+#, c-format
+msgid "warning: "
+msgstr "предупреждение: "
+
diff --git a/src/pacman/po/sk.po b/src/pacman/po/sk.po
new file mode 100644
index 00000000..67c79ac4
--- /dev/null
+++ b/src/pacman/po/sk.po
@@ -0,0 +1,1130 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Pacman Development Team <pacman-dev@archlinux.org>
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Arch Linux Pacman package manager\n"
+"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
+"POT-Creation-Date: 2011-06-23 21:59-0500\n"
+"PO-Revision-Date: 2011-04-22 15:26+0000\n"
+"Last-Translator: jose1711 <jose1711@gmail.com>\n"
+"Language-Team: Slovak <None>\n"
+"Language: sk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n"
+
+#, c-format
+msgid "checking dependencies...\n"
+msgstr "kontrolujem závislosti...\n"
+
+#, c-format
+msgid "checking for file conflicts...\n"
+msgstr "kontrolujem konflikty súborov...\n"
+
+#, c-format
+msgid "resolving dependencies...\n"
+msgstr "riešim závislosti.....\n"
+
+#, c-format
+msgid "looking for inter-conflicts...\n"
+msgstr "kontrolujem interné konflikty...\n"
+
+#, c-format
+msgid "installing %s...\n"
+msgstr "inštalujem %s...\n"
+
+#, c-format
+msgid "removing %s...\n"
+msgstr "odstraňujem %s...\n"
+
+#, c-format
+msgid "upgrading %s...\n"
+msgstr "aktualizujem %s...\n"
+
+#, c-format
+msgid "checking package integrity...\n"
+msgstr "kontrolujem integritu balíčkov...\n"
+
+#, c-format
+msgid "checking delta integrity...\n"
+msgstr "kontrujem integritu delta rozdielov...\n"
+
+#, c-format
+msgid "applying deltas...\n"
+msgstr "aplikujem delta rozdiely...\n"
+
+#, c-format
+msgid "generating %s with %s... "
+msgstr "vytváram %s pomocou %s... "
+
+#, c-format
+msgid "success!\n"
+msgstr "úspech!\n"
+
+#, c-format
+msgid "failed.\n"
+msgstr "zlyhalo.\n"
+
+#, c-format
+msgid ":: Retrieving packages from %s...\n"
+msgstr ":: Získavam balíčky z %s...\n"
+
+#, c-format
+msgid "checking available disk space...\n"
+msgstr "zisťujem voľné miesto na disku...\n"
+
+#, c-format
+msgid ":: %s is in IgnorePkg/IgnoreGroup. Install anyway?"
+msgstr ":: %s je v IgnorePkg/IgnoreGroup. Napriek tomu nainštalovať?"
+
+#, c-format
+msgid ":: Replace %s with %s/%s?"
+msgstr ":: Nahradiť %s za %s/%s?"
+
+#, c-format
+msgid ":: %s and %s are in conflict. Remove %s?"
+msgstr ":: %s a %s sú v konflikte. Odstrániť %s?"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s). Remove %s?"
+msgstr ":: %s a %s sú v konflikte (%s). Odstrániť %s?"
+
+#, c-format
+msgid ""
+":: The following package cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgid_plural ""
+":: The following packages cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgstr[0] ""
+":: Nasledovný balíček nemohol byť aktualizovaný kvôli nevyriešiteľným "
+"závislostiam:\n"
+msgstr[1] ""
+":: Nasledovné balíčky nemohli byť aktualizované kvôli nevyriešiteľným "
+"závislostiam:\n"
+msgstr[2] ""
+":: Nasledovné balíčky nemohli byť aktualizované kvôli nevyriešiteľným "
+"závislostiam:\n"
+
+#, c-format
+msgid "Do you want to skip the above package for this upgrade?"
+msgid_plural "Do you want to skip the above packages for this upgrade?"
+msgstr[0] "Chcete preskočiť aktualizáciu balíčka vyššie?"
+msgstr[1] "Chete preskočiť aktualizáciu balíčkov vyššie?"
+msgstr[2] "Chete preskočiť aktualizáciu balíčkov vyššie?"
+
+#, c-format
+msgid ":: There are %d providers available for %s:\n"
+msgstr ":: Existujú %d poskytovatelia balíčka %s:\n"
+
+#, c-format
+msgid ":: %s-%s: local version is newer. Upgrade anyway?"
+msgstr ":: %s-%s: lokálna verzia je novšia. Napriek tomu aktualizovať?"
+
+#, c-format
+msgid ":: File %s is corrupted. Do you want to delete it?"
+msgstr ":: Súbor %s je poškodený. Chcete ho vymazať?"
+
+#, c-format
+msgid "installing"
+msgstr "inštalujem"
+
+#, c-format
+msgid "upgrading"
+msgstr "aktualizujem"
+
+#, c-format
+msgid "removing"
+msgstr "odstraňujem"
+
+#, c-format
+msgid "checking for file conflicts"
+msgstr "kontrolujem konflikty súborov"
+
+#, c-format
+msgid "checking available disk space"
+msgstr "zisťujem voľné miesto na disku"
+
+#, c-format
+msgid "checking package integrity"
+msgstr "kontrolujem integritu balíčkov"
+
+#, c-format
+msgid "downloading %s...\n"
+msgstr "sťahujem %s...\n"
+
+#, c-format
+msgid "malloc failure: could not allocate %zd bytes\n"
+msgstr "malloc zlyhal: nie je možné alokovať %zd bytov\n"
+
+#, c-format
+msgid "could not get current working directory\n"
+msgstr "nepodarilo sa zistiť aktuálny pracovný adresár\n"
+
+#, c-format
+msgid "could not chdir to download directory %s\n"
+msgstr "nie je možné sa prepnúť do adresára pre sťahovanie %s)\n"
+
+#, c-format
+msgid "running XferCommand: fork failed!\n"
+msgstr "spustenie XferCommand: bolo neúspešné!\n"
+
+#, c-format
+msgid "could not change directory to %s (%s)\n"
+msgstr "nepodarilo sa zmeniť adresár na %s (%s)\n"
+
+#, c-format
+msgid "invalid value for 'CleanMethod' : '%s'\n"
+msgstr "chybná hodnota pre 'CleanMethod': '%s'\n"
+
+#, c-format
+msgid ""
+"config file %s, line %d: directive '%s' in section '%s' not recognized.\n"
+msgstr ""
+"konfiguračný súbor %s, riadok %d: direktíva '%s' v sekcii '%s' nebola "
+"rozpoznaná.\n"
+
+#, fuzzy, c-format
+msgid "config file %s, line %d: directive '%s' has invalid value '%s'\n"
+msgstr "konfiguračný súbor %s, riadok %d: direktíva '%s' vyžaduje hodnotu\n"
+
+#, c-format
+msgid ""
+"The mirror '%s' contains the $arch variable, but no Architecture is "
+"defined.\n"
+msgstr ""
+"Zrkadlo '%s' obsahuje premennú $arch, ale nebola definovaná architektúra.\n"
+
+#, c-format
+msgid "could not add server URL to database '%s': %s (%s)\n"
+msgstr "nebolo možné pridať URL servera k databáze '%s': %s (%s)\n"
+
+#, c-format
+msgid "failed to initialize alpm library (%s)\n"
+msgstr "zlyhala inicializácia knižnice alpm (%s)\n"
+
+#, c-format
+msgid "problem setting logfile '%s' (%s)\n"
+msgstr "problém s nastavením log súboru '%s' (%s)\n"
+
+#, fuzzy, c-format
+msgid "problem setting gpgdir '%s' (%s)\n"
+msgstr "problém s nastavením koreňového adresára '%s' (%s)\n"
+
+#, c-format
+msgid "could not register '%s' database (%s)\n"
+msgstr "nie je možné zaregistrovať databázu '%s' (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not set verify option for database '%s' (%s)\n"
+msgstr "nebolo možné pridať URL servera k databáze '%s': %s (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not add mirror '%s' to database '%s' (%s)\n"
+msgstr "nebolo možné pridať URL servera k databáze '%s': %s (%s)\n"
+
+#, c-format
+msgid "config parsing exceeded max recursion depth of %d.\n"
+msgstr ""
+
+#, c-format
+msgid "config file %s could not be read.\n"
+msgstr "konfiguračný súbor %s nie je možné prečítať.\n"
+
+#, c-format
+msgid "config file %s, line %d: bad section name.\n"
+msgstr "konfiguračný súbor %s, riadok %d: chybné meno sekcie.\n"
+
+#, c-format
+msgid "config file %s, line %d: syntax error in config file- missing key.\n"
+msgstr ""
+"konfiguračný súbor %s, riadok %d: chybná syntax konfiguračného súboru, chýba "
+"kľúč.\n"
+
+#, c-format
+msgid "config file %s, line %d: All directives must belong to a section.\n"
+msgstr ""
+"konfiguračný súbor %s, riadok %d: Všetky položky konfigurácie musia patriť "
+"do nejakej sekcie.\n"
+
+#, c-format
+msgid "config file %s, line %d: directive '%s' needs a value\n"
+msgstr "konfiguračný súbor %s, riadok %d: direktíva '%s' vyžaduje hodnotu\n"
+
+#, c-format
+msgid "no targets specified (use -h for help)\n"
+msgstr "nie sú špecifikované ciele (použite -h pre nápovedu)\n"
+
+#, c-format
+msgid "no install reason specified (use -h for help)\n"
+msgstr "nie je špecifikovaný dôvod inštalácie (použite -h pre nápovedu)\n"
+
+#, c-format
+msgid "could not set install reason for package %s (%s)\n"
+msgstr "nepodarilo sa nastaviť dôvod pre inštaláciu balíčku %s (%s)\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'installed as dependency'\n"
+msgstr ""
+"%s: dôvod pre inštaláciu bol nastavený na 'inštalovaný ako závislosť'\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'explicitly installed'\n"
+msgstr "%s: dôvod pre inštaláciu bol nastavený na 'explicitne nainštalovaný'\n"
+
+#, c-format
+msgid "Explicitly installed"
+msgstr "Explicitne nainštalovaný"
+
+#, c-format
+msgid "Installed as a dependency for another package"
+msgstr "Nainštalovaný ako závislosť iného balíčka"
+
+#, c-format
+msgid "Unknown"
+msgstr "Neznámy"
+
+#, c-format
+msgid "Repository :"
+msgstr "Repozitár :"
+
+#, c-format
+msgid "Name :"
+msgstr "Meno :"
+
+#, c-format
+msgid "Version :"
+msgstr "Verzia :"
+
+#, c-format
+msgid "URL :"
+msgstr "URL :"
+
+#, c-format
+msgid "Licenses :"
+msgstr "Licencia :"
+
+#, c-format
+msgid "Groups :"
+msgstr "Skupiny :"
+
+#, c-format
+msgid "Provides :"
+msgstr "Poskytuje :"
+
+#, c-format
+msgid "Depends On :"
+msgstr "Závisí na :"
+
+#, c-format
+msgid "Optional Deps :"
+msgstr "Voliteľné záv. :"
+
+#, c-format
+msgid "Required By :"
+msgstr "Požadovaný :"
+
+#, c-format
+msgid "Conflicts With :"
+msgstr "Konfliktný s :"
+
+#, c-format
+msgid "Replaces :"
+msgstr "Nahrádza :"
+
+#, fuzzy, c-format
+msgid "Download Size : %6.2f %s\n"
+msgstr "Stiahnutá veľ. : %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Compressed Size: %6.2f %s\n"
+msgstr "Zbalená veľ. : %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Installed Size : %6.2f %s\n"
+msgstr "Veľ. inštalácie: %6.2f K\n"
+
+#, c-format
+msgid "Packager :"
+msgstr "Zabalil :"
+
+#, c-format
+msgid "Architecture :"
+msgstr "Architektúra :"
+
+#, c-format
+msgid "Build Date :"
+msgstr "Dátum zostav. :"
+
+#, c-format
+msgid "Install Date :"
+msgstr "Dátum inštal. :"
+
+#, c-format
+msgid "Install Reason :"
+msgstr "Dôvod inštal. :"
+
+#, c-format
+msgid "Install Script :"
+msgstr "Inštal. skript :"
+
+#, c-format
+msgid "Yes"
+msgstr "Áno"
+
+#, c-format
+msgid "No"
+msgstr "Nie"
+
+#, c-format
+msgid "MD5 Sum :"
+msgstr "MD5 súčet :"
+
+#, c-format
+msgid "Description :"
+msgstr "Popis :"
+
+#, c-format
+msgid "could not calculate checksums for %s\n"
+msgstr "nie je možné spočítať kontrolný súčet pre %s\n"
+
+#, c-format
+msgid "Backup Files:\n"
+msgstr "Zálohované súbory :\n"
+
+#, c-format
+msgid "(none)\n"
+msgstr "(žiadny)\n"
+
+#, c-format
+msgid "no changelog available for '%s'.\n"
+msgstr "zoznam zmien pre '%s' nie je dostupný.\n"
+
+#, c-format
+msgid "options"
+msgstr "voľby"
+
+#, c-format
+msgid "file(s)"
+msgstr "súbor(y)"
+
+#, c-format
+msgid "package(s)"
+msgstr "balíček(y)"
+
+#, c-format
+msgid "usage"
+msgstr "použitie"
+
+#, c-format
+msgid "operation"
+msgstr "operácia"
+
+#, c-format
+msgid "operations:\n"
+msgstr "operacie:\n"
+
+#, c-format
+msgid ""
+"\n"
+"use '%s {-h --help}' with an operation for available options\n"
+msgstr ""
+"\n"
+"použite '%s {-h --help}' s operáciou pre dalšie dostupné voľby\n"
+
+#, c-format
+msgid ""
+" -c, --cascade remove packages and all packages that depend on them\n"
+msgstr ""
+" -c, --cascade odstrániť balíčky vrátane všetkých, ktoré na nich "
+"závisia\n"
+
+#, c-format
+msgid " -n, --nosave remove configuration files\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -s, --recursive remove unnecessary dependencies\n"
+" (-ss includes explicitly installed dependencies)\n"
+msgstr ""
+
+#, c-format
+msgid " -u, --unneeded remove unneeded packages\n"
+msgstr ""
+
+#, c-format
+msgid " -c, --changelog view the changelog of a package\n"
+msgstr " -c, --changelog vypísať zoznam zmien balíčka\n"
+
+#, c-format
+msgid ""
+" -d, --deps list packages installed as dependencies [filter]\n"
+msgstr ""
+" -d, --deps zoznam všetkých balíčkov inštalovaných ako závislosti "
+"[filter]\n"
+
+#, c-format
+msgid " -e, --explicit list packages explicitly installed [filter]\n"
+msgstr ""
+" -e, --explicit zoznam všetkých explicitne inštalovaných balíčkov "
+"[filter]\n"
+
+#, c-format
+msgid " -g, --groups view all members of a package group\n"
+msgstr " -g, --groups vypísať všetky balíčky v skupine\n"
+
+#, c-format
+msgid ""
+" -i, --info view package information (-ii for backup files)\n"
+msgstr ""
+" -i, --info zobraziť informácie o balíčku (-ii zálohované "
+"súbory)\n"
+
+#, c-format
+msgid ""
+" -k, --check check that the files owned by the package(s) are "
+"present\n"
+msgstr ""
+" -k, --check kontrola, či sú prítomné všetky súbory z balíčka\n"
+
+#, c-format
+msgid " -l, --list list the contents of the queried package\n"
+msgstr " -l, --list zoznam súborov v balíčku\n"
+
+#, c-format
+msgid ""
+" -m, --foreign list installed packages not found in sync db(s) "
+"[filter]\n"
+msgstr ""
+" -m, --foreign zoznam nainštalovaných balíčkov nenájdených v "
+"repozitároch [filter]\n"
+
+#, c-format
+msgid " -o, --owns <file> query the package that owns <file>\n"
+msgstr " -o, --owns <file> vyhľadať balíček obsahujúci <file>\n"
+
+#, c-format
+msgid " -p, --file <package> query a package file instead of the database\n"
+msgstr " -p, --file <package> otázka na súbor balíčku miesto na databázu\n"
+
+#, c-format
+msgid " -q, --quiet show less information for query and search\n"
+msgstr ""
+" -q, --quiet zobraziť menej informácii pri otázke a hľadaní\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search locally-installed packages for matching "
+"strings\n"
+msgstr ""
+" -s, --search <regex> vyhľadať nainštalované balíčky, zodpovedajúce "
+"reťazcu\n"
+
+#, c-format
+msgid ""
+" -t, --unrequired list packages not required by any package [filter]\n"
+msgstr ""
+" -t, --unrequired zoznam všetkých balíčkov nevyžadovaných iným "
+"balíčkom nevyžadovaných jiným balíčkem [filter]\n"
+
+#, c-format
+msgid " -u, --upgrades list outdated packages [filter]\n"
+msgstr ""
+" -u, --upgrades zoznam všetkých aktualizovaných balíčkov [filter]\n"
+
+#, c-format
+msgid ""
+" -c, --clean remove old packages from cache directory (-cc for "
+"all)\n"
+msgstr ""
+" -c, --clean odstrániť staré balíčky z cache (-cc pre všetky)\n"
+
+#, c-format
+msgid " -i, --info view package information\n"
+msgstr " -i, --info zobraziť informácie o balíčku\n"
+
+#, c-format
+msgid " -l, --list <repo> view a list of packages in a repo\n"
+msgstr " -l, --list <repo> zobraziť zoznam balíčkov v repozitári\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search remote repositories for matching strings\n"
+msgstr ""
+" -s, --search <regex> vyhľadať balíčky vo vzdialených repozitároch podľa "
+"reťazca\n"
+
+#, c-format
+msgid ""
+" -u, --sysupgrade upgrade installed packages (-uu allows downgrade)\n"
+msgstr ""
+" -u, --sysupgrade aktualizovať nainštalované balíčky (--uu umožní "
+"downgrade)\n"
+
+#, c-format
+msgid ""
+" -w, --downloadonly download packages but do not install/upgrade "
+"anything\n"
+msgstr ""
+" -w, --downloadonly iba stiahnuť balíčky, nainštalovať/neaktualizovať\n"
+
+#, c-format
+msgid ""
+" -y, --refresh download fresh package databases from the server\n"
+msgstr ""
+" -y, --refresh stiahnuť aktuálnu databázu balíčkov zo servera\n"
+
+#, c-format
+msgid " --needed don't reinstall up to date packages\n"
+msgstr " --needed potlačit inštaláciu aktuálnych balíčkov\n"
+
+#, c-format
+msgid " --asdeps mark packages as non-explicitly installed\n"
+msgstr " --asdeps označiť balíčky ako závislosti\n"
+
+#, c-format
+msgid " --asexplicit mark packages as explicitly installed\n"
+msgstr " --asexplicit označiť balíčky ako explicitne inštalované\n"
+
+#, c-format
+msgid " -f, --force force install, overwrite conflicting files\n"
+msgstr ""
+" -f, --force vynútená inštalácia, prepíše konfliktné súbory\n"
+
+#, c-format
+msgid " --asdeps install packages as non-explicitly installed\n"
+msgstr " --asdeps nainštalovať balíčky ako závislosti\n"
+
+#, c-format
+msgid " --asexplicit install packages as explicitly installed\n"
+msgstr ""
+" --asexplicit nainštalovať balíčky ako explicitne inštalované\n"
+
+#, c-format
+msgid ""
+" --ignore <pkg> ignore a package upgrade (can be used more than "
+"once)\n"
+msgstr ""
+" --ignore <pkg> ignorovať aktualizáciu balíčka (možno použiť "
+"viackrát)\n"
+
+#, c-format
+msgid ""
+" --ignoregroup <grp>\n"
+" ignore a group upgrade (can be used more than once)\n"
+msgstr ""
+" --ignoregroup <grp>\n"
+" ignorovať aktualizáciu skupiny (možno poutiť "
+"viackrát)\n"
+
+#, c-format
+msgid ""
+" -d, --nodeps skip dependency version checks (-dd to skip all "
+"checks)\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -k, --dbonly only modify database entries, not package files\n"
+msgstr ""
+" -k, --dbonly iba modifikovať záznamy v databáze, nie súbory "
+"balíčkov\n"
+
+#, c-format
+msgid ""
+" --noprogressbar do not show a progress bar when downloading files\n"
+msgstr " --noprogressbar nezobrazovať priebeh sťahovania súborov\n"
+
+#, c-format
+msgid ""
+" --noscriptlet do not execute the install scriptlet if one exists\n"
+msgstr " --noscriptlet nespúšťať inštalačné skripty\n"
+
+#, c-format
+msgid ""
+" --print print the targets instead of performing the "
+"operation\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" --print-format <string>\n"
+" specify how the targets should be printed\n"
+msgstr ""
+" --print-format <string>\n"
+" určí, ako majú byť ciele vypísané\n"
+
+#, c-format
+msgid " -b, --dbpath <path> set an alternate database location\n"
+msgstr " -b, --dbpath <path> nastaviť iné umiestnenie databáze\n"
+
+#, c-format
+msgid " -r, --root <path> set an alternate installation root\n"
+msgstr " -r, --root <path> nastaviť iný koreňový adresár pre inštaláciu\n"
+
+#, c-format
+msgid " -v, --verbose be verbose\n"
+msgstr " -v, --verbose zobraziť viac informácii\n"
+
+#, c-format
+msgid " --arch <arch> set an alternate architecture\n"
+msgstr " --arch <arch> nastaviť alternatívnu architektúru\n"
+
+#, c-format
+msgid " --cachedir <dir> set an alternate package cache location\n"
+msgstr " --cachedir <dir> nastaviť cestu k adresáru s cache\n"
+
+#, c-format
+msgid " --config <path> set an alternate configuration file\n"
+msgstr " --config <path> nastaviť cestu ku konfiguračnému súboru\n"
+
+#, c-format
+msgid " --debug display debug messages\n"
+msgstr " --debug zobraziť ladiace správy\n"
+
+#, fuzzy, c-format
+msgid " --gpgdir <path> set an alternate home directory for GnuPG\n"
+msgstr " --logfile <path nastaviť cestu k log súboru\n"
+
+#, c-format
+msgid " --logfile <path> set an alternate log file\n"
+msgstr " --logfile <path nastaviť cestu k log súboru\n"
+
+#, c-format
+msgid " --noconfirm do not ask for any confirmation\n"
+msgstr " --noconfirm nepýtať sa na žiadne potvrdenia\n"
+
+#, c-format
+msgid ""
+" This program may be freely redistributed under\n"
+" the terms of the GNU General Public License.\n"
+msgstr ""
+" Tento program smie byť slobodne šírený pod\n"
+" licenciou GNU GPL (General Public License).\n"
+
+#, c-format
+msgid "'%s' is not a valid debug level\n"
+msgstr "'%s' nie je platná ladiaca úroveň\n"
+
+#, c-format
+msgid "only one operation may be used at a time\n"
+msgstr "súčasne je možné spustiť len jednu operáciu\n"
+
+#, c-format
+msgid "invalid option\n"
+msgstr "neplatná voľba\n"
+
+#, c-format
+msgid "buffer overflow detected in arg parsing\n"
+msgstr "detegované pretečenie zásobníka pri spracúvaní argumentov\n"
+
+#, c-format
+msgid "failed to reopen stdin for reading: (%s)\n"
+msgstr "nepodarilo sa znovuotvoriť štandardný vstup na čítanie: (%s)\n"
+
+#, c-format
+msgid "you cannot perform this operation unless you are root.\n"
+msgstr "operáciu nie je možné uskutočniť, ak nie ste root.\n"
+
+#, c-format
+msgid "no operation specified (use -h for help)\n"
+msgstr "nebola špecifikovaná operácia (použite -h pre nápovedu)\n"
+
+#, c-format
+msgid "%s is owned by %s %s\n"
+msgstr "%s vlastní %s %s\n"
+
+#, c-format
+msgid "no file was specified for --owns\n"
+msgstr "nebol určený súbor pre --owns\n"
+
+#, c-format
+msgid "failed to find '%s' in PATH: %s\n"
+msgstr "nepodarilo sa nájsť '%s' v PATH: %s\n"
+
+#, c-format
+msgid "failed to read file '%s': %s\n"
+msgstr "zlyhalo čítanie súboru '%s': %s\n"
+
+#, c-format
+msgid "cannot determine ownership of directory '%s'\n"
+msgstr "nepodarilo sa určiť vlastníctvo adresára '%s'\n"
+
+#, c-format
+msgid "cannot determine real path for '%s': %s\n"
+msgstr "nie je možné určiť skutočnú cestu pre '%s': %s\n"
+
+#, c-format
+msgid "path too long: %s%s\n"
+msgstr "cesta príliš dlhá: %s%s\n"
+
+#, c-format
+msgid "No package owns %s\n"
+msgstr "Žiadny balíček nevlastní %s\n"
+
+#, c-format
+msgid "group \"%s\" was not found\n"
+msgstr "skupina \"%s\" nebola nájdená\n"
+
+#, c-format
+msgid "%s: %d total file, "
+msgid_plural "%s: %d total files, "
+msgstr[0] "%s: %d súbor celkom, "
+msgstr[1] "%s: %d súbory celkom, "
+msgstr[2] "%s: %d súborov celkom, "
+
+#, c-format
+msgid "%d missing file\n"
+msgid_plural "%d missing files\n"
+msgstr[0] "%d chýbajúci súbor\n"
+msgstr[1] "%d chýbajúce súbory\n"
+msgstr[2] "%d chýbajúcich súborov\n"
+
+#, c-format
+msgid "no usable package repositories configured.\n"
+msgstr "nie sú nastavené žiadne použiteľné repozitáre.\n"
+
+#, c-format
+msgid "package \"%s\" not found\n"
+msgstr "balíček \"%s\" nebol nájdený\n"
+
+#, c-format
+msgid "failed to prepare transaction (%s)\n"
+msgstr "zlyhala príprava transakcie (%s)\n"
+
+#, c-format
+msgid ":: package %s does not have a valid architecture\n"
+msgstr ":: balíček %s nemá platnú architektúru\n"
+
+#, c-format
+msgid ":: %s: requires %s\n"
+msgstr ":: %s: vyžaduje %s\n"
+
+#, c-format
+msgid "%s is designated as a HoldPkg.\n"
+msgstr "%s je označený jako HoldPkg.\n"
+
+#, c-format
+msgid "HoldPkg was found in target list. Do you want to continue?"
+msgstr ""
+"Medzi cieľmi bol nájdený balíček označený ako HoldPkg. Chcete pokračovať?"
+
+#, c-format
+msgid " there is nothing to do\n"
+msgstr " nie je čo robiť\n"
+
+#, c-format
+msgid "Do you want to remove these packages?"
+msgstr "Chcete odstrániť tieto balíčky?"
+
+#, c-format
+msgid "failed to commit transaction (%s)\n"
+msgstr "zlyhalo vykonávanie transakcie (%s)\n"
+
+#, c-format
+msgid "could not access database directory\n"
+msgstr "nie je možné pristupovať k adresáru s databázou\n"
+
+#, c-format
+msgid "could not remove %s\n"
+msgstr "nemôžem odstrániť %s\n"
+
+#, c-format
+msgid "Do you want to remove %s?"
+msgstr "Chcete odstrániť %s?"
+
+#, c-format
+msgid "Database directory: %s\n"
+msgstr "Adresár databáze: %s\n"
+
+#, c-format
+msgid "Do you want to remove unused repositories?"
+msgstr "Chcete odstrániť nepoužívané repozitáre?"
+
+#, c-format
+msgid "Database directory cleaned up\n"
+msgstr "Adresár databáze vyčistený\n"
+
+#, c-format
+msgid "Cache directory: %s\n"
+msgstr "Adresár cache: %s\n"
+
+#, c-format
+msgid "Packages to keep:\n"
+msgstr "Balíčky, ktoré nebudú odstránené:\n"
+
+#, c-format
+msgid " All locally installed packages\n"
+msgstr " Všetky lokálne nainštalované balíčky\n"
+
+#, c-format
+msgid " All current sync database packages\n"
+msgstr " Všetky balíčky v databáze\n"
+
+#, c-format
+msgid "Do you want to remove all other packages from cache?"
+msgstr "Chcete odstrániť všetky ostatné balíčky z cache?"
+
+#, c-format
+msgid "removing old packages from cache...\n"
+msgstr "odstraňujem staré balíčky z cache...\n"
+
+#, c-format
+msgid "Do you want to remove ALL files from cache?"
+msgstr "Chcete odstrániť VŠETKY súbory z cache?"
+
+#, c-format
+msgid "removing all files from cache...\n"
+msgstr "odstraňujem všetky súbory z cache...\n"
+
+#, c-format
+msgid "could not access cache directory %s\n"
+msgstr "nie je možné pristupovať k adresáru s cache %s\n"
+
+#, c-format
+msgid "File %s does not seem to be a valid package, remove it?"
+msgstr "Súbor %s nevyzerá ako platný balíček, má sa odstrániť?"
+
+#, c-format
+msgid "failed to update %s (%s)\n"
+msgstr "zlyhala aktualizácia %s (%s)\n"
+
+#, c-format
+msgid " %s is up to date\n"
+msgstr " %s je aktuálny\n"
+
+#, c-format
+msgid "failed to synchronize any databases\n"
+msgstr "zlyhala synchronizácia databáze\n"
+
+#, c-format
+msgid "installed"
+msgstr "nainštalovaný"
+
+#, c-format
+msgid "repository '%s' does not exist\n"
+msgstr "repozitár '%s' neexistuje\n"
+
+#, c-format
+msgid "package '%s' was not found in repository '%s'\n"
+msgstr "balíček '%s' nebol nájdený v repozitári '%s'\n"
+
+#, c-format
+msgid "package '%s' was not found\n"
+msgstr "balíček '%s' nebol nájdený\n"
+
+#, c-format
+msgid "repository \"%s\" was not found.\n"
+msgstr "repozitár \"%s\" nebol nájdený.\n"
+
+#, c-format
+msgid "skipping target: %s\n"
+msgstr "preskakujem cieľ: %s\n"
+
+#, c-format
+msgid "target not found: %s\n"
+msgstr "cieľ nebol nájdený: %s\n"
+
+#, c-format
+msgid ":: There are %d members in group %s:\n"
+msgstr ":: V skupine %2$s je %1$d členov:\n"
+
+#, c-format
+msgid "database not found: %s\n"
+msgstr "databáza nebola nájdená: %s\n"
+
+#, c-format
+msgid ":: Starting full system upgrade...\n"
+msgstr ":: Spúšťam aktualizáciu celého systému...\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict\n"
+msgstr ":: %s a %s sú v konflikte\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s)\n"
+msgstr ":: %s a %s sú v konflikte (%s)\n"
+
+#, c-format
+msgid "Proceed with download?"
+msgstr "Pokračovať v sťahovaní?"
+
+#, c-format
+msgid "Proceed with installation?"
+msgstr "Pokračovať v inštalácii?"
+
+#, c-format
+msgid "%s exists in both '%s' and '%s'\n"
+msgstr "%s sa nachádza v '%s' a '%s'\n"
+
+#, c-format
+msgid "%s: %s exists in filesystem\n"
+msgstr "%s: %s už existuje v súborovom systéme\n"
+
+#, c-format
+msgid "%s is invalid or corrupted\n"
+msgstr "%s je neplatný alebo poškodený\n"
+
+#, c-format
+msgid "Errors occurred, no packages were upgraded.\n"
+msgstr "Vyskytli sa chyby, žiadne balíčky neboli aktualizované.\n"
+
+#, c-format
+msgid ":: Synchronizing package databases...\n"
+msgstr ":: Synchronizujem databázu balíčkov...\n"
+
+#, c-format
+msgid ":: The following packages should be upgraded first :\n"
+msgstr ":: Nasledujúce balíčky by mali byť aktualizované ako prvé:\n"
+
+#, c-format
+msgid ""
+":: Do you want to cancel the current operation\n"
+":: and upgrade these packages now?"
+msgstr ":: Chcete zrušiť súčasnú operáciu a aktualizovať tieto balíčky?"
+
+#, c-format
+msgid "failed to init transaction (%s)\n"
+msgstr "zlyhala príprava transakcie (%s)\n"
+
+#, c-format
+msgid ""
+" if you're sure a package manager is not already\n"
+" running, you can remove %s\n"
+msgstr ""
+" ak ste si istý, že práve nebeží správca balíčkov,\n"
+" môžete odstrániť %s\n"
+
+#, c-format
+msgid " try running pacman-db-upgrade\n"
+msgstr " skúste spustiť pacman-db-upgrade\n"
+
+#, c-format
+msgid "failed to release transaction (%s)\n"
+msgstr "zlyhalo dokončenie transakcie (%s)\n"
+
+#, c-format
+msgid "None"
+msgstr "Nič"
+
+#, c-format
+msgid "insufficient columns available for table display\n"
+msgstr ""
+
+#, c-format
+msgid "Name"
+msgstr ""
+
+#, c-format
+msgid "Old Version"
+msgstr ""
+
+#, c-format
+msgid "New Version"
+msgstr ""
+
+#, c-format
+msgid "Size"
+msgstr ""
+
+#, c-format
+msgid "Targets (%d):"
+msgstr "Ciele (%d):"
+
+#, c-format
+msgid "Remove (%d):"
+msgstr "Odstrániť (%d):"
+
+#, fuzzy, c-format
+msgid "Total Download Size: %.2f %s\n"
+msgstr "Celková veľkosť sťahovania: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Installed Size: %.2f %s\n"
+msgstr "Celková veľkosť inštalácie: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Net Upgrade Size: %.2f %s\n"
+msgstr "Celková veľkosť sťahovania: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Removed Size: %.2f %s\n"
+msgstr "Celková uvoľnená veľkosť: %.2f MB\n"
+
+#, c-format
+msgid "New optional dependencies for %s\n"
+msgstr "Nové voliteľné závislosti pre %s\n"
+
+#, c-format
+msgid "Optional dependencies for %s\n"
+msgstr "Voliteľné závislosti pre %s\n"
+
+#, c-format
+msgid "Repository %s\n"
+msgstr "Repozitár %s\n"
+
+#, c-format
+msgid "Invalid value: %d is not between %d and %d\n"
+msgstr "Neplatná hodnota: %d nie je medzi %d a %d\n"
+
+#, c-format
+msgid "Invalid number: %s\n"
+msgstr "Neplatné čislo: %s\n"
+
+#, c-format
+msgid "Enter a selection (default=all)"
+msgstr "Zadajte výber (východzie=všetky)"
+
+#, c-format
+msgid "Enter a number (default=%d)"
+msgstr "Zadajte číslo (východzie=%d)"
+
+#, c-format
+msgid "[Y/n]"
+msgstr "[A/n]"
+
+#, c-format
+msgid "[y/N]"
+msgstr "[a/N]"
+
+#, c-format
+msgid "Y"
+msgstr "A"
+
+#, c-format
+msgid "YES"
+msgstr "ÁNO"
+
+#, c-format
+msgid "N"
+msgstr "N"
+
+#, c-format
+msgid "NO"
+msgstr "NIE"
+
+#, c-format
+msgid "failed to allocate string\n"
+msgstr "nepodarilo sa alokovať reťazec\n"
+
+#, c-format
+msgid "error: %s"
+msgstr "chyba: %s"
+
+#, c-format
+msgid "warning: %s"
+msgstr "varovanie: %s"
+
+#, c-format
+msgid "error: "
+msgstr "chyba: "
+
+#, c-format
+msgid "warning: "
+msgstr "varovanie: "
+
diff --git a/src/pacman/po/sr.po b/src/pacman/po/sr.po
new file mode 100644
index 00000000..262ae5d7
--- /dev/null
+++ b/src/pacman/po/sr.po
@@ -0,0 +1,1125 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Pacman Development Team <pacman-dev@archlinux.org>
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Arch Linux Pacman package manager\n"
+"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
+"POT-Creation-Date: 2011-06-23 21:59-0500\n"
+"PO-Revision-Date: 2011-04-12 10:01+0000\n"
+"Last-Translator: Xabre <githzerai06@gmail.com>\n"
+"Language-Team: Serbian <None>\n"
+"Language: sr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
+
+#, c-format
+msgid "checking dependencies...\n"
+msgstr "проверавам зависности...\n"
+
+#, c-format
+msgid "checking for file conflicts...\n"
+msgstr "проверавам сукобе фајлова...\n"
+
+#, c-format
+msgid "resolving dependencies...\n"
+msgstr "разрешавам зависности...\n"
+
+#, c-format
+msgid "looking for inter-conflicts...\n"
+msgstr "тражим унутрашње сукобе...\n"
+
+#, c-format
+msgid "installing %s...\n"
+msgstr "инсталирам %s...\n"
+
+#, c-format
+msgid "removing %s...\n"
+msgstr "уклањам %s...\n"
+
+#, c-format
+msgid "upgrading %s...\n"
+msgstr "надограђујем %s...\n"
+
+#, c-format
+msgid "checking package integrity...\n"
+msgstr "проверавам интегритет пакета...\n"
+
+#, c-format
+msgid "checking delta integrity...\n"
+msgstr "проверавам итегритет делте...\n"
+
+#, c-format
+msgid "applying deltas...\n"
+msgstr "примењујем делте...\n"
+
+#, c-format
+msgid "generating %s with %s... "
+msgstr "стварам %s помоћу %s..."
+
+#, c-format
+msgid "success!\n"
+msgstr "успех!\n"
+
+#, c-format
+msgid "failed.\n"
+msgstr "неуспех.\n"
+
+#, c-format
+msgid ":: Retrieving packages from %s...\n"
+msgstr ":: Преузимам пакете из %s...\n"
+
+#, c-format
+msgid "checking available disk space...\n"
+msgstr "проверавам доступан простор на диску...\n"
+
+#, c-format
+msgid ":: %s is in IgnorePkg/IgnoreGroup. Install anyway?"
+msgstr ""
+":: %s је у игнорисаним пакетима/игнорисаној групи. Свеједно инсталирати?"
+
+#, c-format
+msgid ":: Replace %s with %s/%s?"
+msgstr ":: Заменити %s са %s/%s?"
+
+#, c-format
+msgid ":: %s and %s are in conflict. Remove %s?"
+msgstr ":: %s и %s су у сукобу. Уклонити %s?"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s). Remove %s?"
+msgstr ":: %s и %s су у сукобу (%s). Уклонити %s?"
+
+#, c-format
+msgid ""
+":: The following package cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgid_plural ""
+":: The following packages cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgstr[0] ""
+":: Следећи пакет не може бити надограђен због неразрешивих зависности:\n"
+msgstr[1] ""
+":: Следећи пакети не могу бити надограђени услед неразрешивих зависности:\n"
+msgstr[2] ""
+":: Следећи пакети не могу бити надограђени услед неразрешивих зависности:\n"
+
+#, c-format
+msgid "Do you want to skip the above package for this upgrade?"
+msgid_plural "Do you want to skip the above packages for this upgrade?"
+msgstr[0] "Желите ли да прескочите наведени пакет током ове надоградње?"
+msgstr[1] "Желите ли да прескочите наведене пакете током ове надоградње?"
+msgstr[2] "Желите ли да прескочите наведене пакете током ове надоградње?"
+
+#, c-format
+msgid ":: There are %d providers available for %s:\n"
+msgstr ":: Постоје/и %d снадбевача за %s:\n"
+
+#, c-format
+msgid ":: %s-%s: local version is newer. Upgrade anyway?"
+msgstr ":: %s-%s: локална верзија је новија. Свеједно надоградити? "
+
+#, c-format
+msgid ":: File %s is corrupted. Do you want to delete it?"
+msgstr ":: Фајл %s је оштећен. Желите ли да га обришете?"
+
+#, c-format
+msgid "installing"
+msgstr "инсталирам"
+
+#, c-format
+msgid "upgrading"
+msgstr "надограђујем"
+
+#, c-format
+msgid "removing"
+msgstr "уклањам"
+
+#, c-format
+msgid "checking for file conflicts"
+msgstr "проверавам сукобе фајлова"
+
+#, c-format
+msgid "checking available disk space"
+msgstr "проверавам доступан простор на диску"
+
+#, c-format
+msgid "checking package integrity"
+msgstr "проверавам интегритет пакета"
+
+#, c-format
+msgid "downloading %s...\n"
+msgstr "преузимам %s...\n"
+
+#, c-format
+msgid "malloc failure: could not allocate %zd bytes\n"
+msgstr "грешка у алокацији меморије: не могу да алоцирам %zd бајтова\n"
+
+#, c-format
+msgid "could not get current working directory\n"
+msgstr "не могу да одредим тренутну радну фасциклу\n"
+
+#, c-format
+msgid "could not chdir to download directory %s\n"
+msgstr "не могу да пређем у фасциклу преузимања %s\n"
+
+#, c-format
+msgid "running XferCommand: fork failed!\n"
+msgstr "покрећем XferCommand: неуспело рачвање!\n"
+
+#, c-format
+msgid "could not change directory to %s (%s)\n"
+msgstr "не могу да променим фасциклу у %s (%s)\n"
+
+#, c-format
+msgid "invalid value for 'CleanMethod' : '%s'\n"
+msgstr "неисправна вредност за „CleanMethod“ : „%s“\n"
+
+#, c-format
+msgid ""
+"config file %s, line %d: directive '%s' in section '%s' not recognized.\n"
+msgstr ""
+"фајл поставки %s, линија %d: директива „%s“ у одељку „%s“ није препозната.\n"
+
+#, fuzzy, c-format
+msgid "config file %s, line %d: directive '%s' has invalid value '%s'\n"
+msgstr "фајл поставки %s, линија %d: директиви „%s“ је потребна вредност.\n"
+
+#, c-format
+msgid ""
+"The mirror '%s' contains the $arch variable, but no Architecture is "
+"defined.\n"
+msgstr "Мирор „%s“ садржи промењиву $arch, али архитектура није дефинисана.\n"
+
+#, c-format
+msgid "could not add server URL to database '%s': %s (%s)\n"
+msgstr "не могу да додам УРЛ сервера у базу „%s“: %s (%s)\n"
+
+#, c-format
+msgid "failed to initialize alpm library (%s)\n"
+msgstr "грешка при учитавању библиотеке alpm (%s)\n"
+
+#, c-format
+msgid "problem setting logfile '%s' (%s)\n"
+msgstr "проблем при постављању дневника „%s“ (%s)\n"
+
+#, fuzzy, c-format
+msgid "problem setting gpgdir '%s' (%s)\n"
+msgstr "проблем при постављању корене фасцикле „%s“ (%s)\n"
+
+#, c-format
+msgid "could not register '%s' database (%s)\n"
+msgstr "не могу да региструјем базу „%s“ (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not set verify option for database '%s' (%s)\n"
+msgstr "не могу да додам УРЛ сервера у базу „%s“: %s (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not add mirror '%s' to database '%s' (%s)\n"
+msgstr "не могу да додам УРЛ сервера у базу „%s“: %s (%s)\n"
+
+#, c-format
+msgid "config parsing exceeded max recursion depth of %d.\n"
+msgstr ""
+
+#, c-format
+msgid "config file %s could not be read.\n"
+msgstr "не могу да прочитам фајл поставки %s.\n"
+
+#, c-format
+msgid "config file %s, line %d: bad section name.\n"
+msgstr "фајл поставки %s, линија %d: погрешан назив одељка.\n"
+
+#, c-format
+msgid "config file %s, line %d: syntax error in config file- missing key.\n"
+msgstr ""
+"фајл поставки %s, линија %d: синтаксна грешка у фајлу — недостаје кључ.\n"
+
+#, c-format
+msgid "config file %s, line %d: All directives must belong to a section.\n"
+msgstr ""
+"фајл поставки %s, линија %d: све директиве морају припадати одељцима.\n"
+
+#, c-format
+msgid "config file %s, line %d: directive '%s' needs a value\n"
+msgstr "фајл поставки %s, линија %d: директиви „%s“ је потребна вредност.\n"
+
+#, c-format
+msgid "no targets specified (use -h for help)\n"
+msgstr "нису назначени циљеви (употребите -h за помоћ)\n"
+
+#, c-format
+msgid "no install reason specified (use -h for help)\n"
+msgstr "није наведен разлог инсталације (употребите -h за помоћ)\n"
+
+#, c-format
+msgid "could not set install reason for package %s (%s)\n"
+msgstr "не могу да поставим разлог инсталације пакета за %s (%s)\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'installed as dependency'\n"
+msgstr "%s: разлог инсталације је постављен на „инсталиран као зависност” \n"
+
+#, c-format
+msgid "%s: install reason has been set to 'explicitly installed'\n"
+msgstr "%s: разлог инсталације је постављен на „експлицитно инсталиран” \n"
+
+#, c-format
+msgid "Explicitly installed"
+msgstr "Експлицитно инсталиран"
+
+#, c-format
+msgid "Installed as a dependency for another package"
+msgstr "Инсталиран као зависност другом пакету"
+
+#, c-format
+msgid "Unknown"
+msgstr "Непознато"
+
+#, c-format
+msgid "Repository :"
+msgstr "Ризница :"
+
+#, c-format
+msgid "Name :"
+msgstr "Име :"
+
+#, c-format
+msgid "Version :"
+msgstr "Верзија :"
+
+#, c-format
+msgid "URL :"
+msgstr "УРЛ :"
+
+#, c-format
+msgid "Licenses :"
+msgstr "Лиценце :"
+
+#, c-format
+msgid "Groups :"
+msgstr "Групе :"
+
+#, c-format
+msgid "Provides :"
+msgstr "Обезбеђује :"
+
+#, c-format
+msgid "Depends On :"
+msgstr "Зависи од :"
+
+#, c-format
+msgid "Optional Deps :"
+msgstr "Опц. зависи од :"
+
+#, c-format
+msgid "Required By :"
+msgstr "Захтева га :"
+
+#, c-format
+msgid "Conflicts With :"
+msgstr "У сукобу са :"
+
+#, c-format
+msgid "Replaces :"
+msgstr "Смењује :"
+
+#, fuzzy, c-format
+msgid "Download Size : %6.2f %s\n"
+msgstr "Вел. преузимања : %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Compressed Size: %6.2f %s\n"
+msgstr "Вел. архиве : %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Installed Size : %6.2f %s\n"
+msgstr "Вел. инсталације: %6.2f K\n"
+
+#, c-format
+msgid "Packager :"
+msgstr "Пакетар :"
+
+#, c-format
+msgid "Architecture :"
+msgstr "Архитектура :"
+
+#, c-format
+msgid "Build Date :"
+msgstr "Датум градње :"
+
+#, c-format
+msgid "Install Date :"
+msgstr "Датум инсталације:"
+
+#, c-format
+msgid "Install Reason :"
+msgstr "Разлог инстал. :"
+
+#, c-format
+msgid "Install Script :"
+msgstr "Инст. скрипта :"
+
+#, c-format
+msgid "Yes"
+msgstr "има"
+
+#, c-format
+msgid "No"
+msgstr "нема"
+
+#, c-format
+msgid "MD5 Sum :"
+msgstr "МД5 сума :"
+
+#, c-format
+msgid "Description :"
+msgstr "Опис :"
+
+#, c-format
+msgid "could not calculate checksums for %s\n"
+msgstr "не могу да израчунам суму за проверу %s\n"
+
+#, c-format
+msgid "Backup Files:\n"
+msgstr "Резервни фајлови:\n"
+
+#, c-format
+msgid "(none)\n"
+msgstr "(нема)\n"
+
+#, c-format
+msgid "no changelog available for '%s'.\n"
+msgstr "није доступан дневник измена за „%s”.\n"
+
+#, c-format
+msgid "options"
+msgstr "опције"
+
+#, c-format
+msgid "file(s)"
+msgstr "фајл(ови)"
+
+#, c-format
+msgid "package(s)"
+msgstr "пакет(и)"
+
+#, c-format
+msgid "usage"
+msgstr "употреба"
+
+#, c-format
+msgid "operation"
+msgstr "операција"
+
+#, c-format
+msgid "operations:\n"
+msgstr "операције :\n"
+
+#, c-format
+msgid ""
+"\n"
+"use '%s {-h --help}' with an operation for available options\n"
+msgstr ""
+"\n"
+"употребите „%s {-h --help}” уз операцију за доступне опције\n"
+
+#, c-format
+msgid ""
+" -c, --cascade remove packages and all packages that depend on them\n"
+msgstr " -c, --cascade уклања пакета и све пакете који зависе од њих\n"
+
+#, c-format
+msgid " -n, --nosave remove configuration files\n"
+msgstr " -n, --nosave уклања фајлове поставки\n"
+
+#, c-format
+msgid ""
+" -s, --recursive remove unnecessary dependencies\n"
+" (-ss includes explicitly installed dependencies)\n"
+msgstr ""
+" -s, --recursive уклања непотребне зависности\n"
+" (-ss укључује и експлицитно инсталиране зависности)\n"
+
+#, c-format
+msgid " -u, --unneeded remove unneeded packages\n"
+msgstr " -u, --unneeded уклања непотребне пакете\n"
+
+#, c-format
+msgid " -c, --changelog view the changelog of a package\n"
+msgstr " -c, --changelog приказује дневник измена пакета\n"
+
+#, c-format
+msgid ""
+" -d, --deps list packages installed as dependencies [filter]\n"
+msgstr ""
+" -d, --deps даје списак пакета инсталираних као зависности "
+"[филтер]\n"
+
+#, c-format
+msgid " -e, --explicit list packages explicitly installed [filter]\n"
+msgstr ""
+" -e, --explicit даје списак експлицитно инсталираних пакета "
+"[филтер]\n"
+
+#, c-format
+msgid " -g, --groups view all members of a package group\n"
+msgstr " -g, --groups приказује све пакете из групе\n"
+
+#, c-format
+msgid ""
+" -i, --info view package information (-ii for backup files)\n"
+msgstr ""
+" -i, --info приказује податке о пакету (--ii за резервне "
+"фајлове)\n"
+
+#, c-format
+msgid ""
+" -k, --check check that the files owned by the package(s) are "
+"present\n"
+msgstr " -k, --check проверава присутност свих фајлова из пакета\n"
+
+#, c-format
+msgid " -l, --list list the contents of the queried package\n"
+msgstr " -l, --list листа садржај траженог пакета\n"
+
+#, c-format
+msgid ""
+" -m, --foreign list installed packages not found in sync db(s) "
+"[filter]\n"
+msgstr ""
+" -m, --foreign листа инсталиране пакете који нису у базама које се "
+"синхронизују [филтер]\n"
+
+#, c-format
+msgid " -o, --owns <file> query the package that owns <file>\n"
+msgstr " -o, --owns <фајл> тражи пакет који у себи садржи <фајл>\n"
+
+#, c-format
+msgid " -p, --file <package> query a package file instead of the database\n"
+msgstr " -p, --file <пакет> тражи фајл пакета уместо уноса у бази\n"
+
+#, c-format
+msgid " -q, --quiet show less information for query and search\n"
+msgstr ""
+" -q, --quiet приказује мање информација за упите и претрагу\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search locally-installed packages for matching "
+"strings\n"
+msgstr ""
+" -s, --search <региз> тражи локално инсталиране пакете према задатим "
+"нискама\n"
+
+#, c-format
+msgid ""
+" -t, --unrequired list packages not required by any package [filter]\n"
+msgstr ""
+" -t, --unrequired листа пакете које не захтева ниједан други пакет "
+"[филтер]\n"
+
+#, c-format
+msgid " -u, --upgrades list outdated packages [filter]\n"
+msgstr " -u, --upgrades листа застареле пакета [филтер]\n"
+
+#, c-format
+msgid ""
+" -c, --clean remove old packages from cache directory (-cc for "
+"all)\n"
+msgstr ""
+" -c, --clean уклања старе пакете из фасцикле кеша (-cc за све)\n"
+
+#, c-format
+msgid " -i, --info view package information\n"
+msgstr " -i, --info приказује податке о пакету\n"
+
+#, c-format
+msgid " -l, --list <repo> view a list of packages in a repo\n"
+msgstr " -l, --list <ризница> приказује списак свих пакета из ризнице\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search remote repositories for matching strings\n"
+msgstr ""
+" -s, --search <региз> тражи пакете у удаљеним ризницама на основу задатих "
+"ниски\n"
+
+#, c-format
+msgid ""
+" -u, --sysupgrade upgrade installed packages (-uu allows downgrade)\n"
+msgstr ""
+" -u, --sysupgrade надограђује инсталиране пакете (-uu дозвољава "
+"разградњу)\n"
+
+#, c-format
+msgid ""
+" -w, --downloadonly download packages but do not install/upgrade "
+"anything\n"
+msgstr ""
+" -w, --downloadonly преузима пакете, али их не инсталира/надограђује\n"
+
+#, c-format
+msgid ""
+" -y, --refresh download fresh package databases from the server\n"
+msgstr ""
+" -y, --refresh поново потпуно преузима базу пакета са сервера\n"
+
+#, c-format
+msgid " --needed don't reinstall up to date packages\n"
+msgstr " --needed не инсталира поново већ ажурне пакете\n"
+
+#, c-format
+msgid " --asdeps mark packages as non-explicitly installed\n"
+msgstr " --asdeps означава пакета као неексплицитно инсталиране\n"
+
+#, c-format
+msgid " --asexplicit mark packages as explicitly installed\n"
+msgstr " --asexplicit означава пакете као експлицитно инсталиране\n"
+
+#, c-format
+msgid " -f, --force force install, overwrite conflicting files\n"
+msgstr ""
+" -f, --force приморава инсталацију преписујући сукобљене фајлове\n"
+
+#, c-format
+msgid " --asdeps install packages as non-explicitly installed\n"
+msgstr ""
+" --asdeps инсталира пакета као неексплицитно инсталиране\n"
+
+#, c-format
+msgid " --asexplicit install packages as explicitly installed\n"
+msgstr " --asexplicit инсталира пакете као експлицитно инсталиране\n"
+
+#, c-format
+msgid ""
+" --ignore <pkg> ignore a package upgrade (can be used more than "
+"once)\n"
+msgstr ""
+" --ignore <пакет> игнорише надоградње пакета (може се употребити више "
+"пута)\n"
+
+#, c-format
+msgid ""
+" --ignoregroup <grp>\n"
+" ignore a group upgrade (can be used more than once)\n"
+msgstr ""
+" --ignoregroup <група>\n"
+" игнорише надоградњу групе (може се употребити више "
+"пута)\n"
+
+#, c-format
+msgid ""
+" -d, --nodeps skip dependency version checks (-dd to skip all "
+"checks)\n"
+msgstr ""
+" -d, --nodeps прескаче проверу верзија зависности (-dd прескаче све "
+"провере)\n"
+
+#, c-format
+msgid ""
+" -k, --dbonly only modify database entries, not package files\n"
+msgstr " -k, --dbonly мења само уносе у бази, не и фајлове пакета\n"
+
+#, c-format
+msgid ""
+" --noprogressbar do not show a progress bar when downloading files\n"
+msgstr ""
+" --noprogressbar не приказује траку напретка при преузимању фајлова\n"
+
+#, c-format
+msgid ""
+" --noscriptlet do not execute the install scriptlet if one exists\n"
+msgstr ""
+" --noscriptlet не извршава инсталациону скрипту уколико постоји\n"
+
+#, c-format
+msgid ""
+" --print print the targets instead of performing the "
+"operation\n"
+msgstr " --print штампа циљеве уместо извршавања операције\n"
+
+#, c-format
+msgid ""
+" --print-format <string>\n"
+" specify how the targets should be printed\n"
+msgstr ""
+" --print-format <ниска>\n"
+" назначује како ће циљеви бити штампани\n"
+
+#, c-format
+msgid " -b, --dbpath <path> set an alternate database location\n"
+msgstr " -b, --dbpath <путања> поставља алтернативну локацију базе\n"
+
+#, c-format
+msgid " -r, --root <path> set an alternate installation root\n"
+msgstr " -r, --root <роот> поставља алтернативни корен инсталације\n"
+
+#, c-format
+msgid " -v, --verbose be verbose\n"
+msgstr " -v, --verbose даје детаљнији излаз\n"
+
+#, c-format
+msgid " --arch <arch> set an alternate architecture\n"
+msgstr " --arch <архит.> поставља алтернативну архитектуру\n"
+
+#, c-format
+msgid " --cachedir <dir> set an alternate package cache location\n"
+msgstr " --cachedir <fasц.> поставља алтернативну локацију кеша пакета\n"
+
+#, c-format
+msgid " --config <path> set an alternate configuration file\n"
+msgstr " --config <путања> поставља алтернативни фајл поставки\n"
+
+#, c-format
+msgid " --debug display debug messages\n"
+msgstr " --debug приказује поруке за исправљање грешака\n"
+
+#, fuzzy, c-format
+msgid " --gpgdir <path> set an alternate home directory for GnuPG\n"
+msgstr " --logfile <путањa> поставља атернативни дневнички фајл\n"
+
+#, c-format
+msgid " --logfile <path> set an alternate log file\n"
+msgstr " --logfile <путањa> поставља атернативни дневнички фајл\n"
+
+#, c-format
+msgid " --noconfirm do not ask for any confirmation\n"
+msgstr " --noconfirm да не тражи никакве потврде\n"
+
+#, c-format
+msgid ""
+" This program may be freely redistributed under\n"
+" the terms of the GNU General Public License.\n"
+msgstr ""
+" Овај програм се може слободно редистрибуирати\n"
+" под условима Гнуове Опште Јавне Лиценце.\n"
+
+#, c-format
+msgid "'%s' is not a valid debug level\n"
+msgstr "„%s“ није исправан ниво излаза за исправљање грешака\n"
+
+#, c-format
+msgid "only one operation may be used at a time\n"
+msgstr "може се задати само једна операција истовремено\n"
+
+#, c-format
+msgid "invalid option\n"
+msgstr "неисправна опција\n"
+
+#, c-format
+msgid "buffer overflow detected in arg parsing\n"
+msgstr "Откривен прелив међуспремника при обради аргумента\n"
+
+#, c-format
+msgid "failed to reopen stdin for reading: (%s)\n"
+msgstr "грешка при поновном отварању стандардног улаза за читање: (%s)\n"
+
+#, c-format
+msgid "you cannot perform this operation unless you are root.\n"
+msgstr "не можете извршити ову операцију ако нисте корени корисник.\n"
+
+#, c-format
+msgid "no operation specified (use -h for help)\n"
+msgstr "није назначена операција (употребите -h за помоћ)\n"
+
+#, c-format
+msgid "%s is owned by %s %s\n"
+msgstr "%s је у саставу %s %s\n"
+
+#, c-format
+msgid "no file was specified for --owns\n"
+msgstr "није одређен фајл за --owns\n"
+
+#, c-format
+msgid "failed to find '%s' in PATH: %s\n"
+msgstr "не могу да нађем „%s“ у путањи: %s\n"
+
+#, c-format
+msgid "failed to read file '%s': %s\n"
+msgstr "не могу да прочитам фајл „%s“: %s\n"
+
+#, c-format
+msgid "cannot determine ownership of directory '%s'\n"
+msgstr "не могу да одредим власништво над фасциклом „%s“\n"
+
+#, c-format
+msgid "cannot determine real path for '%s': %s\n"
+msgstr "не могу да утврдим стварну путању за „%s“: %s\n"
+
+#, c-format
+msgid "path too long: %s%s\n"
+msgstr "предуга путања: %s%s\n"
+
+#, c-format
+msgid "No package owns %s\n"
+msgstr "Ниједан пакет не садржи %s\n"
+
+#, c-format
+msgid "group \"%s\" was not found\n"
+msgstr "није нађена група „%s“\n"
+
+#, c-format
+msgid "%s: %d total file, "
+msgid_plural "%s: %d total files, "
+msgstr[0] "%s: укупно %d фајл, "
+msgstr[1] "%s: укупно %d фајла, "
+msgstr[2] "%s: укупно %d фајлова, "
+
+#, c-format
+msgid "%d missing file\n"
+msgid_plural "%d missing files\n"
+msgstr[0] "%d недостајући фајл\n"
+msgstr[1] "%d недостајућа фајла\n"
+msgstr[2] "%d недостајућих фајова\n"
+
+#, c-format
+msgid "no usable package repositories configured.\n"
+msgstr "нису подешене употребљиве ризнице пакета.\n"
+
+#, c-format
+msgid "package \"%s\" not found\n"
+msgstr "није пронађен пакет „%s“\n"
+
+#, c-format
+msgid "failed to prepare transaction (%s)\n"
+msgstr "неуспело припремање преноса (%s)\n"
+
+#, c-format
+msgid ":: package %s does not have a valid architecture\n"
+msgstr ":: пакет %s нема исправну архитектуру\n"
+
+#, c-format
+msgid ":: %s: requires %s\n"
+msgstr ":: %s: захтева %s\n"
+
+#, c-format
+msgid "%s is designated as a HoldPkg.\n"
+msgstr "%s је означен као задржани пакет.\n"
+
+#, c-format
+msgid "HoldPkg was found in target list. Do you want to continue?"
+msgstr "У списку циљева је нађен задржани пакет. Желите ли да наставите?"
+
+#, c-format
+msgid " there is nothing to do\n"
+msgstr " нема се шта чинити\n"
+
+#, c-format
+msgid "Do you want to remove these packages?"
+msgstr "Желите ли да уклоните ове пакете?"
+
+#, c-format
+msgid "failed to commit transaction (%s)\n"
+msgstr "неуспело извршавање преноса (%s)\n"
+
+#, c-format
+msgid "could not access database directory\n"
+msgstr "не могу да приступим фасцикли базе\n"
+
+#, c-format
+msgid "could not remove %s\n"
+msgstr "не могу да уконим %s\n"
+
+#, c-format
+msgid "Do you want to remove %s?"
+msgstr "Желите ли да уклоните %s?"
+
+#, c-format
+msgid "Database directory: %s\n"
+msgstr "Фасцикла базе: %s\n"
+
+#, c-format
+msgid "Do you want to remove unused repositories?"
+msgstr "Желите ли да уклоните некоришћене ризнице?"
+
+#, c-format
+msgid "Database directory cleaned up\n"
+msgstr "Фасцикла базе је очишћена\n"
+
+#, c-format
+msgid "Cache directory: %s\n"
+msgstr "Фасцикла кеша: %s\n"
+
+#, c-format
+msgid "Packages to keep:\n"
+msgstr "Задржани пакети:\n"
+
+#, c-format
+msgid " All locally installed packages\n"
+msgstr " сви локално инсталирани пакети\n"
+
+#, c-format
+msgid " All current sync database packages\n"
+msgstr " сви пакети из тренутне базе\n"
+
+#, c-format
+msgid "Do you want to remove all other packages from cache?"
+msgstr "Желите ли да уклоните све пакете из кеша?"
+
+#, c-format
+msgid "removing old packages from cache...\n"
+msgstr "уклањам старе пакете из кеша...\n"
+
+#, c-format
+msgid "Do you want to remove ALL files from cache?"
+msgstr "Желите ли да уклоните СВЕ фајлове из кеша?"
+
+#, c-format
+msgid "removing all files from cache...\n"
+msgstr "уклањам све фајлове из кеша...\n"
+
+#, c-format
+msgid "could not access cache directory %s\n"
+msgstr "не могу да приступим фасцикли кеша %s\n"
+
+#, c-format
+msgid "File %s does not seem to be a valid package, remove it?"
+msgstr "Изгледа да фајл %s није исправан пакет; уклонити га?"
+
+#, c-format
+msgid "failed to update %s (%s)\n"
+msgstr "неуспела надоградња %s (%s)\n"
+
+#, c-format
+msgid " %s is up to date\n"
+msgstr " %s је ажурна\n"
+
+#, c-format
+msgid "failed to synchronize any databases\n"
+msgstr "не успех да синхронизујем иједну базу\n"
+
+#, c-format
+msgid "installed"
+msgstr "инсталиран"
+
+#, c-format
+msgid "repository '%s' does not exist\n"
+msgstr "не постоји ризница „%s“\n"
+
+#, c-format
+msgid "package '%s' was not found in repository '%s'\n"
+msgstr "не постоји пакет „%s“ у ризници „%s“\n"
+
+#, c-format
+msgid "package '%s' was not found\n"
+msgstr "није нађен пакет „%s“\n"
+
+#, c-format
+msgid "repository \"%s\" was not found.\n"
+msgstr "није нађена ризница „%s“.\n"
+
+#, c-format
+msgid "skipping target: %s\n"
+msgstr "прескачем циљ: %s\n"
+
+#, c-format
+msgid "target not found: %s\n"
+msgstr "циљ није нађен: %s\n"
+
+#, c-format
+msgid ":: There are %d members in group %s:\n"
+msgstr ":: Има %d чланова у групи %s:\n"
+
+#, c-format
+msgid "database not found: %s\n"
+msgstr "база није нађена: %s\n"
+
+#, c-format
+msgid ":: Starting full system upgrade...\n"
+msgstr ":: Покрећем пуну надоградњу система...\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict\n"
+msgstr ":: %s и %s су у сукобу\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s)\n"
+msgstr ":: %s и %s су у сукобу (%s)\n"
+
+#, c-format
+msgid "Proceed with download?"
+msgstr "Наставити са преузимањем?"
+
+#, c-format
+msgid "Proceed with installation?"
+msgstr "Наставити са инсталацијом?"
+
+#, c-format
+msgid "%s exists in both '%s' and '%s'\n"
+msgstr "%s постоји у „%s“ и у „%s“\n"
+
+#, c-format
+msgid "%s: %s exists in filesystem\n"
+msgstr "%s: %s постоји у систему фајлова\n"
+
+#, c-format
+msgid "%s is invalid or corrupted\n"
+msgstr "%s је неисправан или оштећен\n"
+
+#, c-format
+msgid "Errors occurred, no packages were upgraded.\n"
+msgstr "Дошло је до грешаке, пакети нису надограђени.\n"
+
+#, c-format
+msgid ":: Synchronizing package databases...\n"
+msgstr ":: Синхронизујем базе пакета...\n"
+
+#, c-format
+msgid ":: The following packages should be upgraded first :\n"
+msgstr ":: Следеће пакете би требало прве надоградити :\n"
+
+#, c-format
+msgid ""
+":: Do you want to cancel the current operation\n"
+":: and upgrade these packages now?"
+msgstr ""
+":: Желите ли да откажете тренутну операцију\n"
+":: и надоградите ове пакете одмах?"
+
+#, c-format
+msgid "failed to init transaction (%s)\n"
+msgstr "неуспело започињање преноса (%s)\n"
+
+#, c-format
+msgid ""
+" if you're sure a package manager is not already\n"
+" running, you can remove %s\n"
+msgstr ""
+" уколико сте сигурни да менаџер пакета није већ\n"
+" покренут, можете уклонити %s\n"
+
+#, c-format
+msgid " try running pacman-db-upgrade\n"
+msgstr " покушајте са покретањем pacman-db-upgrade\n"
+
+#, c-format
+msgid "failed to release transaction (%s)\n"
+msgstr "грешка при отпуштању преноса (%s)\n"
+
+#, c-format
+msgid "None"
+msgstr "нема"
+
+#, c-format
+msgid "insufficient columns available for table display\n"
+msgstr ""
+
+#, c-format
+msgid "Name"
+msgstr ""
+
+#, c-format
+msgid "Old Version"
+msgstr ""
+
+#, c-format
+msgid "New Version"
+msgstr ""
+
+#, c-format
+msgid "Size"
+msgstr ""
+
+#, c-format
+msgid "Targets (%d):"
+msgstr "Циљеви (%d):"
+
+#, c-format
+msgid "Remove (%d):"
+msgstr "За уклањање (%d):"
+
+#, fuzzy, c-format
+msgid "Total Download Size: %.2f %s\n"
+msgstr "Укупна величина преузимања : %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Installed Size: %.2f %s\n"
+msgstr "Укупна величина инсталације: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Net Upgrade Size: %.2f %s\n"
+msgstr "Укупна величина преузимања : %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Removed Size: %.2f %s\n"
+msgstr "Укупна величина уклоњеног: %.2f MB\n"
+
+#, c-format
+msgid "New optional dependencies for %s\n"
+msgstr "Нове опционе зависности за %s\n"
+
+#, c-format
+msgid "Optional dependencies for %s\n"
+msgstr "Опционе зависности за %s\n"
+
+#, c-format
+msgid "Repository %s\n"
+msgstr "Ризница %s\n"
+
+#, c-format
+msgid "Invalid value: %d is not between %d and %d\n"
+msgstr "Неисправна вредност: %d није између %d и %d\n"
+
+#, c-format
+msgid "Invalid number: %s\n"
+msgstr "Неисправан број: %s\n"
+
+#, c-format
+msgid "Enter a selection (default=all)"
+msgstr "Унесите избор (подразумевано=све)"
+
+#, c-format
+msgid "Enter a number (default=%d)"
+msgstr "Унесите број (подразумевани=%d)"
+
+#, c-format
+msgid "[Y/n]"
+msgstr "[Д/н]"
+
+#, c-format
+msgid "[y/N]"
+msgstr "[д/Н]"
+
+#, c-format
+msgid "Y"
+msgstr "Д"
+
+#, c-format
+msgid "YES"
+msgstr "ДА"
+
+#, c-format
+msgid "N"
+msgstr "Н"
+
+#, c-format
+msgid "NO"
+msgstr "НЕ"
+
+#, c-format
+msgid "failed to allocate string\n"
+msgstr "неуспело алоцирање ниске\n"
+
+#, c-format
+msgid "error: %s"
+msgstr "грешка: %s"
+
+#, c-format
+msgid "warning: %s"
+msgstr "упозорење: %s"
+
+#, c-format
+msgid "error: "
+msgstr "грешка: "
+
+#, c-format
+msgid "warning: "
+msgstr "упозорење: "
+
diff --git a/src/pacman/po/sr@latin.po b/src/pacman/po/sr@latin.po
new file mode 100644
index 00000000..468517da
--- /dev/null
+++ b/src/pacman/po/sr@latin.po
@@ -0,0 +1,1127 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Pacman Development Team <pacman-dev@archlinux.org>
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Arch Linux Pacman package manager\n"
+"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
+"POT-Creation-Date: 2011-06-23 21:59-0500\n"
+"PO-Revision-Date: 2011-04-12 10:02+0000\n"
+"Last-Translator: Xabre <githzerai06@gmail.com>\n"
+"Language-Team: Serbian (Latin) <None>\n"
+"Language: sr@latin\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
+
+#, c-format
+msgid "checking dependencies...\n"
+msgstr "proveravam zavisnosti...\n"
+
+#, c-format
+msgid "checking for file conflicts...\n"
+msgstr "proveravam sukobe fajlova...\n"
+
+#, c-format
+msgid "resolving dependencies...\n"
+msgstr "razrešavam zavisnosti...\n"
+
+#, c-format
+msgid "looking for inter-conflicts...\n"
+msgstr "tražim unutrašnje sukobe...\n"
+
+#, c-format
+msgid "installing %s...\n"
+msgstr "instaliram %s...\n"
+
+#, c-format
+msgid "removing %s...\n"
+msgstr "uklanjam %s...\n"
+
+#, c-format
+msgid "upgrading %s...\n"
+msgstr "nadograđujem %s...\n"
+
+#, c-format
+msgid "checking package integrity...\n"
+msgstr "proveravam integritet paketa...\n"
+
+#, c-format
+msgid "checking delta integrity...\n"
+msgstr "proveravam itegritet delte...\n"
+
+#, c-format
+msgid "applying deltas...\n"
+msgstr "primenjujem delte...\n"
+
+#, c-format
+msgid "generating %s with %s... "
+msgstr "stvaram %s pomoću %s..."
+
+#, c-format
+msgid "success!\n"
+msgstr "uspeh!\n"
+
+#, c-format
+msgid "failed.\n"
+msgstr "neuspeh.\n"
+
+#, c-format
+msgid ":: Retrieving packages from %s...\n"
+msgstr ":: Preuzimam pakete iz %s...\n"
+
+#, c-format
+msgid "checking available disk space...\n"
+msgstr "proveravam dostupan prostor na disku...\n"
+
+#, c-format
+msgid ":: %s is in IgnorePkg/IgnoreGroup. Install anyway?"
+msgstr ""
+":: %s je u ignorisanim paketima/ignorisanoj grupi. Svejedno instalirati?"
+
+#, c-format
+msgid ":: Replace %s with %s/%s?"
+msgstr ":: Zameniti %s sa %s/%s?"
+
+#, c-format
+msgid ":: %s and %s are in conflict. Remove %s?"
+msgstr ":: %s i %s su u sukobu. Ukloniti %s?"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s). Remove %s?"
+msgstr ":: %s i %s su u sukobu (%s). Ukloniti %s?"
+
+#, c-format
+msgid ""
+":: The following package cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgid_plural ""
+":: The following packages cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgstr[0] ""
+":: Sledeći paket ne može biti nadograđen zbog nerazrešivih zavisnosti:\n"
+msgstr[1] ""
+":: Sledeći paketi ne mogu biti nadograđeni usled nerazrešivih zavisnosti:\n"
+msgstr[2] ""
+":: Sledeći paketi ne mogu biti nadograđeni usled nerazrešivih zavisnosti:\n"
+
+#, c-format
+msgid "Do you want to skip the above package for this upgrade?"
+msgid_plural "Do you want to skip the above packages for this upgrade?"
+msgstr[0] "Želite li da preskočite navedeni paket tokom ove nadogradnje?"
+msgstr[1] "Želite li da preskočite navedene pakete tokom ove nadogradnje?"
+msgstr[2] "Želite li da preskočite navedene pakete tokom ove nadogradnje?"
+
+#, c-format
+msgid ":: There are %d providers available for %s:\n"
+msgstr ":: Postoje/i %d snadbevača za %s:\n"
+
+#, c-format
+msgid ":: %s-%s: local version is newer. Upgrade anyway?"
+msgstr ":: %s-%s: lokalna verzija je novija. Svejedno nadograditi? "
+
+#, c-format
+msgid ":: File %s is corrupted. Do you want to delete it?"
+msgstr ":: Fajl %s je oštećen. Želite li da ga obrišete?"
+
+#, c-format
+msgid "installing"
+msgstr "instaliram"
+
+#, c-format
+msgid "upgrading"
+msgstr "nadograđujem"
+
+#, c-format
+msgid "removing"
+msgstr "uklanjam"
+
+#, c-format
+msgid "checking for file conflicts"
+msgstr "proveravam sukobe fajlova"
+
+#, c-format
+msgid "checking available disk space"
+msgstr "proveravam dostupan prostor na disku"
+
+#, c-format
+msgid "checking package integrity"
+msgstr "proveravam integritet paketa"
+
+#, c-format
+msgid "downloading %s...\n"
+msgstr "preuzimam %s...\n"
+
+#, c-format
+msgid "malloc failure: could not allocate %zd bytes\n"
+msgstr "greška u alokaciji memorije: ne mogu da alociram %zd bajtova\n"
+
+#, c-format
+msgid "could not get current working directory\n"
+msgstr "ne mogu da odredim trenutnu radnu fasciklu\n"
+
+#, c-format
+msgid "could not chdir to download directory %s\n"
+msgstr "ne mogu da pređem u fasciklu preuzimanja %s\n"
+
+#, c-format
+msgid "running XferCommand: fork failed!\n"
+msgstr "pokrećem XferCommand: neuspelo račvanje!\n"
+
+#, c-format
+msgid "could not change directory to %s (%s)\n"
+msgstr "ne mogu da promenim fasciklu u %s (%s)\n"
+
+#, c-format
+msgid "invalid value for 'CleanMethod' : '%s'\n"
+msgstr "neispravna vrednost za „CleanMethod“ : „%s“\n"
+
+#, c-format
+msgid ""
+"config file %s, line %d: directive '%s' in section '%s' not recognized.\n"
+msgstr ""
+"fajl postavki %s, linija %d: direktiva „%s“ u odeljku „%s“ nije prepoznata.\n"
+
+#, fuzzy, c-format
+msgid "config file %s, line %d: directive '%s' has invalid value '%s'\n"
+msgstr "fajl postavki %s, linija %d: direktivi „%s“ je potrebna vrednost.\n"
+
+#, c-format
+msgid ""
+"The mirror '%s' contains the $arch variable, but no Architecture is "
+"defined.\n"
+msgstr "Miror „%s“ sadrži promenjivu $arch, ali arhitektura nije definisana.\n"
+
+#, c-format
+msgid "could not add server URL to database '%s': %s (%s)\n"
+msgstr "ne mogu da dodam URL servera u bazu „%s“: %s (%s)\n"
+
+#, c-format
+msgid "failed to initialize alpm library (%s)\n"
+msgstr "greška pri učitavanju biblioteke alpm (%s)\n"
+
+#, c-format
+msgid "problem setting logfile '%s' (%s)\n"
+msgstr "problem pri postavljanju dnevnika „%s“ (%s)\n"
+
+#, fuzzy, c-format
+msgid "problem setting gpgdir '%s' (%s)\n"
+msgstr "problem pri postavljanju korene fascikle „%s“ (%s)\n"
+
+#, c-format
+msgid "could not register '%s' database (%s)\n"
+msgstr "ne mogu da registrujem bazu „%s“ (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not set verify option for database '%s' (%s)\n"
+msgstr "ne mogu da dodam URL servera u bazu „%s“: %s (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not add mirror '%s' to database '%s' (%s)\n"
+msgstr "ne mogu da dodam URL servera u bazu „%s“: %s (%s)\n"
+
+#, c-format
+msgid "config parsing exceeded max recursion depth of %d.\n"
+msgstr ""
+
+#, c-format
+msgid "config file %s could not be read.\n"
+msgstr "ne mogu da pročitam fajl postavki %s.\n"
+
+#, c-format
+msgid "config file %s, line %d: bad section name.\n"
+msgstr "fajl postavki %s, linija %d: pogrešan naziv odeljka.\n"
+
+#, c-format
+msgid "config file %s, line %d: syntax error in config file- missing key.\n"
+msgstr ""
+"fajl postavki %s, linija %d: sintaksna greška u fajlu — nedostaje ključ.\n"
+
+#, c-format
+msgid "config file %s, line %d: All directives must belong to a section.\n"
+msgstr ""
+"fajl postavki %s, linija %d: sve direktive moraju pripadati odeljcima.\n"
+
+#, c-format
+msgid "config file %s, line %d: directive '%s' needs a value\n"
+msgstr "fajl postavki %s, linija %d: direktivi „%s“ je potrebna vrednost.\n"
+
+#, c-format
+msgid "no targets specified (use -h for help)\n"
+msgstr "nisu naznačeni ciljevi (upotrebite -h za pomoć)\n"
+
+#, c-format
+msgid "no install reason specified (use -h for help)\n"
+msgstr "nije naveden razlog instalacije (upotrebite -h za pomoć)\n"
+
+#, c-format
+msgid "could not set install reason for package %s (%s)\n"
+msgstr "ne mogu da postavim razlog instalacije paketa za %s (%s)\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'installed as dependency'\n"
+msgstr "%s: razlog instalacije je postavljen na „instaliran kao zavisnost” \n"
+
+#, c-format
+msgid "%s: install reason has been set to 'explicitly installed'\n"
+msgstr "%s: razlog instalacije je postavljen na „eksplicitno instaliran” \n"
+
+#, c-format
+msgid "Explicitly installed"
+msgstr "Eksplicitno instaliran"
+
+#, c-format
+msgid "Installed as a dependency for another package"
+msgstr "Instaliran kao zavisnost drugom paketu"
+
+#, c-format
+msgid "Unknown"
+msgstr "Nepoznato"
+
+#, c-format
+msgid "Repository :"
+msgstr "Riznica :"
+
+#, c-format
+msgid "Name :"
+msgstr "Ime :"
+
+#, c-format
+msgid "Version :"
+msgstr "Verzija :"
+
+#, c-format
+msgid "URL :"
+msgstr "URL :"
+
+#, c-format
+msgid "Licenses :"
+msgstr "Licence :"
+
+#, c-format
+msgid "Groups :"
+msgstr "Grupe :"
+
+#, c-format
+msgid "Provides :"
+msgstr "Obezbeđuje :"
+
+#, c-format
+msgid "Depends On :"
+msgstr "Zavisi od :"
+
+#, c-format
+msgid "Optional Deps :"
+msgstr "Opc. zavisi od :"
+
+#, c-format
+msgid "Required By :"
+msgstr "Zahteva ga :"
+
+#, c-format
+msgid "Conflicts With :"
+msgstr "U sukobu sa :"
+
+#, c-format
+msgid "Replaces :"
+msgstr "Smenjuje :"
+
+#, fuzzy, c-format
+msgid "Download Size : %6.2f %s\n"
+msgstr "Vel. preuzimanja : %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Compressed Size: %6.2f %s\n"
+msgstr "Vel. arhive : %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Installed Size : %6.2f %s\n"
+msgstr "Vel. instalacije: %6.2f K\n"
+
+#, c-format
+msgid "Packager :"
+msgstr "Paketar :"
+
+#, c-format
+msgid "Architecture :"
+msgstr "Arhitektura :"
+
+#, c-format
+msgid "Build Date :"
+msgstr "Datum gradnje :"
+
+#, c-format
+msgid "Install Date :"
+msgstr "Datum instalacije:"
+
+#, c-format
+msgid "Install Reason :"
+msgstr "Razlog instal. :"
+
+#, c-format
+msgid "Install Script :"
+msgstr "Inst. skripta :"
+
+#, c-format
+msgid "Yes"
+msgstr "ima"
+
+#, c-format
+msgid "No"
+msgstr "nema"
+
+#, c-format
+msgid "MD5 Sum :"
+msgstr "MD5 suma :"
+
+#, c-format
+msgid "Description :"
+msgstr "Opis :"
+
+#, c-format
+msgid "could not calculate checksums for %s\n"
+msgstr "ne mogu da izračunam sumu za proveru %s\n"
+
+#, c-format
+msgid "Backup Files:\n"
+msgstr "Rezervni fajlovi:\n"
+
+#, c-format
+msgid "(none)\n"
+msgstr "(nema)\n"
+
+#, c-format
+msgid "no changelog available for '%s'.\n"
+msgstr "nije dostupan dnevnik izmena za „%s”.\n"
+
+#, c-format
+msgid "options"
+msgstr "opcije"
+
+#, c-format
+msgid "file(s)"
+msgstr "fajl(ovi)"
+
+#, c-format
+msgid "package(s)"
+msgstr "paket(i)"
+
+#, c-format
+msgid "usage"
+msgstr "upotreba"
+
+#, c-format
+msgid "operation"
+msgstr "operacija"
+
+#, c-format
+msgid "operations:\n"
+msgstr "operacije :\n"
+
+#, c-format
+msgid ""
+"\n"
+"use '%s {-h --help}' with an operation for available options\n"
+msgstr ""
+"\n"
+"upotrebite „%s {-h --help}” uz operaciju za dostupne opcije\n"
+
+#, c-format
+msgid ""
+" -c, --cascade remove packages and all packages that depend on them\n"
+msgstr ""
+" -c, --cascade uklanja paketa i sve pakete koji zavise od njih\n"
+
+#, c-format
+msgid " -n, --nosave remove configuration files\n"
+msgstr " -n, --nosave uklanja fajlove postavki\n"
+
+#, c-format
+msgid ""
+" -s, --recursive remove unnecessary dependencies\n"
+" (-ss includes explicitly installed dependencies)\n"
+msgstr ""
+" -s, --recursive uklanja nepotrebne zavisnosti\n"
+" (-ss uključuje i eksplicitno instalirane zavisnosti)\n"
+
+#, c-format
+msgid " -u, --unneeded remove unneeded packages\n"
+msgstr " -u, --unneeded uklanja nepotrebne pakete\n"
+
+#, c-format
+msgid " -c, --changelog view the changelog of a package\n"
+msgstr " -c, --changelog prikazuje dnevnik izmena paketa\n"
+
+#, c-format
+msgid ""
+" -d, --deps list packages installed as dependencies [filter]\n"
+msgstr ""
+" -d, --deps daje spisak paketa instaliranih kao zavisnosti "
+"[filter]\n"
+
+#, c-format
+msgid " -e, --explicit list packages explicitly installed [filter]\n"
+msgstr ""
+" -e, --explicit daje spisak eksplicitno instaliranih paketa "
+"[filter]\n"
+
+#, c-format
+msgid " -g, --groups view all members of a package group\n"
+msgstr " -g, --groups prikazuje sve pakete iz grupe\n"
+
+#, c-format
+msgid ""
+" -i, --info view package information (-ii for backup files)\n"
+msgstr ""
+" -i, --info prikazuje podatke o paketu (--ii za rezervne "
+"fajlove)\n"
+
+#, c-format
+msgid ""
+" -k, --check check that the files owned by the package(s) are "
+"present\n"
+msgstr " -k, --check proverava prisutnost svih fajlova iz paketa\n"
+
+#, c-format
+msgid " -l, --list list the contents of the queried package\n"
+msgstr " -l, --list lista sadržaj traženog paketa\n"
+
+#, c-format
+msgid ""
+" -m, --foreign list installed packages not found in sync db(s) "
+"[filter]\n"
+msgstr ""
+" -m, --foreign lista instalirane pakete koji nisu u bazama koje se "
+"sinhronizuju [filter]\n"
+
+#, c-format
+msgid " -o, --owns <file> query the package that owns <file>\n"
+msgstr " -o, --owns <fajl> traži paket koji u sebi sadrži <fajl>\n"
+
+#, c-format
+msgid " -p, --file <package> query a package file instead of the database\n"
+msgstr " -p, --file <paket> traži fajl paketa umesto unosa u bazi\n"
+
+#, c-format
+msgid " -q, --quiet show less information for query and search\n"
+msgstr ""
+" -q, --quiet prikazuje manje informacija za upite i pretragu\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search locally-installed packages for matching "
+"strings\n"
+msgstr ""
+" -s, --search <regiz> traži lokalno instalirane pakete prema zadatim "
+"niskama\n"
+
+#, c-format
+msgid ""
+" -t, --unrequired list packages not required by any package [filter]\n"
+msgstr ""
+" -t, --unrequired lista pakete koje ne zahteva nijedan drugi paket "
+"[filter]\n"
+
+#, c-format
+msgid " -u, --upgrades list outdated packages [filter]\n"
+msgstr " -u, --upgrades lista zastarele paketa [filter]\n"
+
+#, c-format
+msgid ""
+" -c, --clean remove old packages from cache directory (-cc for "
+"all)\n"
+msgstr ""
+" -c, --clean uklanja stare pakete iz fascikle keša (-cc za sve)\n"
+
+#, c-format
+msgid " -i, --info view package information\n"
+msgstr " -i, --info prikazuje podatke o paketu\n"
+
+#, c-format
+msgid " -l, --list <repo> view a list of packages in a repo\n"
+msgstr " -l, --list <riznica> prikazuje spisak svih paketa iz riznice\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search remote repositories for matching strings\n"
+msgstr ""
+" -s, --search <regiz> traži pakete u udaljenim riznicama na osnovu zadatih "
+"niski\n"
+
+#, c-format
+msgid ""
+" -u, --sysupgrade upgrade installed packages (-uu allows downgrade)\n"
+msgstr ""
+" -u, --sysupgrade nadograđuje instalirane pakete (-uu dozvoljava "
+"razgradnju)\n"
+
+#, c-format
+msgid ""
+" -w, --downloadonly download packages but do not install/upgrade "
+"anything\n"
+msgstr ""
+" -w, --downloadonly preuzima pakete, ali ih ne instalira/nadograđuje\n"
+
+#, c-format
+msgid ""
+" -y, --refresh download fresh package databases from the server\n"
+msgstr ""
+" -y, --refresh ponovo potpuno preuzima bazu paketa sa servera\n"
+
+#, c-format
+msgid " --needed don't reinstall up to date packages\n"
+msgstr " --needed ne instalira ponovo već ažurne pakete\n"
+
+#, c-format
+msgid " --asdeps mark packages as non-explicitly installed\n"
+msgstr " --asdeps označava paketa kao neeksplicitno instalirane\n"
+
+#, c-format
+msgid " --asexplicit mark packages as explicitly installed\n"
+msgstr " --asexplicit označava pakete kao eksplicitno instalirane\n"
+
+#, c-format
+msgid " -f, --force force install, overwrite conflicting files\n"
+msgstr ""
+" -f, --force primorava instalaciju prepisujući sukobljene fajlove\n"
+
+#, c-format
+msgid " --asdeps install packages as non-explicitly installed\n"
+msgstr ""
+" --asdeps instalira paketa kao neeksplicitno instalirane\n"
+
+#, c-format
+msgid " --asexplicit install packages as explicitly installed\n"
+msgstr " --asexplicit instalira pakete kao eksplicitno instalirane\n"
+
+#, c-format
+msgid ""
+" --ignore <pkg> ignore a package upgrade (can be used more than "
+"once)\n"
+msgstr ""
+" --ignore <paket> ignoriše nadogradnje paketa (može se upotrebiti više "
+"puta)\n"
+
+#, c-format
+msgid ""
+" --ignoregroup <grp>\n"
+" ignore a group upgrade (can be used more than once)\n"
+msgstr ""
+" --ignoregroup <grupa>\n"
+" ignoriše nadogradnju grupe (može se upotrebiti više "
+"puta)\n"
+
+#, c-format
+msgid ""
+" -d, --nodeps skip dependency version checks (-dd to skip all "
+"checks)\n"
+msgstr ""
+" -d, --nodeps preskače provere verzija zavisnosti (-dd preskače sve "
+"provere)\n"
+
+#, c-format
+msgid ""
+" -k, --dbonly only modify database entries, not package files\n"
+msgstr " -k, --dbonly menja samo unose u bazi, ne i fajlove paketa\n"
+
+#, c-format
+msgid ""
+" --noprogressbar do not show a progress bar when downloading files\n"
+msgstr ""
+" --noprogressbar ne prikazuje traku napretka pri preuzimanju fajlova\n"
+
+#, c-format
+msgid ""
+" --noscriptlet do not execute the install scriptlet if one exists\n"
+msgstr ""
+" --noscriptlet ne izvršava instalacionu skriptu ukoliko postoji\n"
+
+#, c-format
+msgid ""
+" --print print the targets instead of performing the "
+"operation\n"
+msgstr " --print štampa ciljeve umesto izvršavanja operacije\n"
+
+#, c-format
+msgid ""
+" --print-format <string>\n"
+" specify how the targets should be printed\n"
+msgstr ""
+" --print-format <niska>\n"
+" naznačuje kako će ciljevi biti štampani\n"
+
+#, c-format
+msgid " -b, --dbpath <path> set an alternate database location\n"
+msgstr " -b, --dbpath <putanja> postavlja alternativnu lokaciju baze\n"
+
+#, c-format
+msgid " -r, --root <path> set an alternate installation root\n"
+msgstr " -r, --root <root> postavlja alternativni koren instalacije\n"
+
+#, c-format
+msgid " -v, --verbose be verbose\n"
+msgstr " -v, --verbose daje detaljniji izlaz\n"
+
+#, c-format
+msgid " --arch <arch> set an alternate architecture\n"
+msgstr " --arch <arhit.> postavlja alternativnu arhitekturu\n"
+
+#, c-format
+msgid " --cachedir <dir> set an alternate package cache location\n"
+msgstr ""
+" --cachedir <fasc.> postavlja alternativnu lokaciju keša paketa\n"
+
+#, c-format
+msgid " --config <path> set an alternate configuration file\n"
+msgstr " --config <putanja> postavlja alternativni fajl postavki\n"
+
+#, c-format
+msgid " --debug display debug messages\n"
+msgstr " --debug prikazuje poruke za ispravljanje grešaka\n"
+
+#, fuzzy, c-format
+msgid " --gpgdir <path> set an alternate home directory for GnuPG\n"
+msgstr " --logfile <putanja> postavlja aternativni dnevnički fajl\n"
+
+#, c-format
+msgid " --logfile <path> set an alternate log file\n"
+msgstr " --logfile <putanja> postavlja aternativni dnevnički fajl\n"
+
+#, c-format
+msgid " --noconfirm do not ask for any confirmation\n"
+msgstr " --noconfirm da ne traži nikakve potvrde\n"
+
+#, c-format
+msgid ""
+" This program may be freely redistributed under\n"
+" the terms of the GNU General Public License.\n"
+msgstr ""
+" Ovaj program se može slobodno redistribuirati\n"
+" pod uslovima Gnuove Opšte Javne Licence.\n"
+
+#, c-format
+msgid "'%s' is not a valid debug level\n"
+msgstr "„%s“ nije ispravan nivo izlaza za ispravljanje grešaka\n"
+
+#, c-format
+msgid "only one operation may be used at a time\n"
+msgstr "može se zadati samo jedna operacija istovremeno\n"
+
+#, c-format
+msgid "invalid option\n"
+msgstr "neispravna opcija\n"
+
+#, c-format
+msgid "buffer overflow detected in arg parsing\n"
+msgstr "Otkriven preliv međuspremnika pri obradi argumenta\n"
+
+#, c-format
+msgid "failed to reopen stdin for reading: (%s)\n"
+msgstr "greška pri ponovnom otvaranju standardnog ulaza za čitanje: (%s)\n"
+
+#, c-format
+msgid "you cannot perform this operation unless you are root.\n"
+msgstr "ne možete izvršiti ovu operaciju ako niste koreni korisnik.\n"
+
+#, c-format
+msgid "no operation specified (use -h for help)\n"
+msgstr "nije naznačena operacija (upotrebite -h za pomoć)\n"
+
+#, c-format
+msgid "%s is owned by %s %s\n"
+msgstr "%s je u sastavu %s %s\n"
+
+#, c-format
+msgid "no file was specified for --owns\n"
+msgstr "nije određen fajl za --owns\n"
+
+#, c-format
+msgid "failed to find '%s' in PATH: %s\n"
+msgstr "ne mogu da nađem „%s“ u putanji: %s\n"
+
+#, c-format
+msgid "failed to read file '%s': %s\n"
+msgstr "ne mogu da pročitam fajl „%s“: %s\n"
+
+#, c-format
+msgid "cannot determine ownership of directory '%s'\n"
+msgstr "ne mogu da odredim vlasništvo nad fasciklom „%s“\n"
+
+#, c-format
+msgid "cannot determine real path for '%s': %s\n"
+msgstr "ne mogu da utvrdim stvarnu putanju za „%s“: %s\n"
+
+#, c-format
+msgid "path too long: %s%s\n"
+msgstr "preduga putanja: %s%s\n"
+
+#, c-format
+msgid "No package owns %s\n"
+msgstr "Nijedan paket ne sadrži %s\n"
+
+#, c-format
+msgid "group \"%s\" was not found\n"
+msgstr "nije nađena grupa „%s“\n"
+
+#, c-format
+msgid "%s: %d total file, "
+msgid_plural "%s: %d total files, "
+msgstr[0] "%s: ukupno %d fajl, "
+msgstr[1] "%s: ukupno %d fajla, "
+msgstr[2] "%s: ukupno %d fajlova, "
+
+#, c-format
+msgid "%d missing file\n"
+msgid_plural "%d missing files\n"
+msgstr[0] "%d nedostajući fajl\n"
+msgstr[1] "%d nedostajuća fajla\n"
+msgstr[2] "%d nedostajućih fajova\n"
+
+#, c-format
+msgid "no usable package repositories configured.\n"
+msgstr "nisu podešene upotrebljive riznice paketa.\n"
+
+#, c-format
+msgid "package \"%s\" not found\n"
+msgstr "nije pronađen paket „%s“\n"
+
+#, c-format
+msgid "failed to prepare transaction (%s)\n"
+msgstr "neuspelo pripremanje prenosa (%s)\n"
+
+#, c-format
+msgid ":: package %s does not have a valid architecture\n"
+msgstr ":: paket %s nema ispravnu arhitekturu\n"
+
+#, c-format
+msgid ":: %s: requires %s\n"
+msgstr ":: %s: zahteva %s\n"
+
+#, c-format
+msgid "%s is designated as a HoldPkg.\n"
+msgstr "%s je označen kao zadržani paket.\n"
+
+#, c-format
+msgid "HoldPkg was found in target list. Do you want to continue?"
+msgstr "U spisku ciljeva je nađen zadržani paket. Želite li da nastavite?"
+
+#, c-format
+msgid " there is nothing to do\n"
+msgstr " nema se šta činiti\n"
+
+#, c-format
+msgid "Do you want to remove these packages?"
+msgstr "Želite li da uklonite ove pakete?"
+
+#, c-format
+msgid "failed to commit transaction (%s)\n"
+msgstr "neuspelo izvršavanje prenosa (%s)\n"
+
+#, c-format
+msgid "could not access database directory\n"
+msgstr "ne mogu da pristupim fascikli baze\n"
+
+#, c-format
+msgid "could not remove %s\n"
+msgstr "ne mogu da ukonim %s\n"
+
+#, c-format
+msgid "Do you want to remove %s?"
+msgstr "Želite li da uklonite %s?"
+
+#, c-format
+msgid "Database directory: %s\n"
+msgstr "Fascikla baze: %s\n"
+
+#, c-format
+msgid "Do you want to remove unused repositories?"
+msgstr "Želite li da uklonite nekorišćene riznice?"
+
+#, c-format
+msgid "Database directory cleaned up\n"
+msgstr "Fascikla baze je očišćena\n"
+
+#, c-format
+msgid "Cache directory: %s\n"
+msgstr "Fascikla keša: %s\n"
+
+#, c-format
+msgid "Packages to keep:\n"
+msgstr "Zadržani paketi:\n"
+
+#, c-format
+msgid " All locally installed packages\n"
+msgstr " svi lokalno instalirani paketi\n"
+
+#, c-format
+msgid " All current sync database packages\n"
+msgstr " svi paketi iz trenutne baze\n"
+
+#, c-format
+msgid "Do you want to remove all other packages from cache?"
+msgstr "Želite li da uklonite sve pakete iz keša?"
+
+#, c-format
+msgid "removing old packages from cache...\n"
+msgstr "uklanjam stare pakete iz keša...\n"
+
+#, c-format
+msgid "Do you want to remove ALL files from cache?"
+msgstr "Želite li da uklonite SVE fajlove iz keša?"
+
+#, c-format
+msgid "removing all files from cache...\n"
+msgstr "uklanjam sve fajlove iz keša...\n"
+
+#, c-format
+msgid "could not access cache directory %s\n"
+msgstr "ne mogu da pristupim fascikli keša %s\n"
+
+#, c-format
+msgid "File %s does not seem to be a valid package, remove it?"
+msgstr "Izgleda da fajl %s nije ispravan paket; ukloniti ga?"
+
+#, c-format
+msgid "failed to update %s (%s)\n"
+msgstr "neuspela nadogradnja %s (%s)\n"
+
+#, c-format
+msgid " %s is up to date\n"
+msgstr " %s je ažurna\n"
+
+#, c-format
+msgid "failed to synchronize any databases\n"
+msgstr "ne uspeh da sinhronizujem ijednu bazu\n"
+
+#, c-format
+msgid "installed"
+msgstr "instaliran"
+
+#, c-format
+msgid "repository '%s' does not exist\n"
+msgstr "ne postoji riznica „%s“\n"
+
+#, c-format
+msgid "package '%s' was not found in repository '%s'\n"
+msgstr "ne postoji paket „%s“ u riznici „%s“\n"
+
+#, c-format
+msgid "package '%s' was not found\n"
+msgstr "nije nađen paket „%s“\n"
+
+#, c-format
+msgid "repository \"%s\" was not found.\n"
+msgstr "nije nađena riznica „%s“.\n"
+
+#, c-format
+msgid "skipping target: %s\n"
+msgstr "preskačem cilj: %s\n"
+
+#, c-format
+msgid "target not found: %s\n"
+msgstr "cilj nije nađen: %s\n"
+
+#, c-format
+msgid ":: There are %d members in group %s:\n"
+msgstr ":: Ima %d članova u grupi %s:\n"
+
+#, c-format
+msgid "database not found: %s\n"
+msgstr "baza nije nađena: %s\n"
+
+#, c-format
+msgid ":: Starting full system upgrade...\n"
+msgstr ":: Pokrećem punu nadogradnju sistema...\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict\n"
+msgstr ":: %s i %s su u sukobu\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s)\n"
+msgstr ":: %s i %s su u sukobu (%s)\n"
+
+#, c-format
+msgid "Proceed with download?"
+msgstr "Nastaviti sa preuzimanjem?"
+
+#, c-format
+msgid "Proceed with installation?"
+msgstr "Nastaviti sa instalacijom?"
+
+#, c-format
+msgid "%s exists in both '%s' and '%s'\n"
+msgstr "%s postoji u „%s“ i u „%s“\n"
+
+#, c-format
+msgid "%s: %s exists in filesystem\n"
+msgstr "%s: %s postoji u sistemu fajlova\n"
+
+#, c-format
+msgid "%s is invalid or corrupted\n"
+msgstr "%s je neispravan ili oštećen\n"
+
+#, c-format
+msgid "Errors occurred, no packages were upgraded.\n"
+msgstr "Došlo je do grešake, paketi nisu nadograđeni.\n"
+
+#, c-format
+msgid ":: Synchronizing package databases...\n"
+msgstr ":: Sinhronizujem baze paketa...\n"
+
+#, c-format
+msgid ":: The following packages should be upgraded first :\n"
+msgstr ":: Sledeće pakete bi trebalo prve nadograditi :\n"
+
+#, c-format
+msgid ""
+":: Do you want to cancel the current operation\n"
+":: and upgrade these packages now?"
+msgstr ""
+":: Želite li da otkažete trenutnu operaciju\n"
+":: i nadogradite ove pakete odmah?"
+
+#, c-format
+msgid "failed to init transaction (%s)\n"
+msgstr "neuspelo započinjanje prenosa (%s)\n"
+
+#, c-format
+msgid ""
+" if you're sure a package manager is not already\n"
+" running, you can remove %s\n"
+msgstr ""
+" ukoliko ste sigurni da menadžer paketa nije već\n"
+" pokrenut, možete ukloniti %s\n"
+
+#, c-format
+msgid " try running pacman-db-upgrade\n"
+msgstr " pokušajte sa pokretanjem pacman-db-upgrade\n"
+
+#, c-format
+msgid "failed to release transaction (%s)\n"
+msgstr "greška pri otpuštanju prenosa (%s)\n"
+
+#, c-format
+msgid "None"
+msgstr "nema"
+
+#, c-format
+msgid "insufficient columns available for table display\n"
+msgstr ""
+
+#, c-format
+msgid "Name"
+msgstr ""
+
+#, c-format
+msgid "Old Version"
+msgstr ""
+
+#, c-format
+msgid "New Version"
+msgstr ""
+
+#, c-format
+msgid "Size"
+msgstr ""
+
+#, c-format
+msgid "Targets (%d):"
+msgstr "Ciljevi (%d):"
+
+#, c-format
+msgid "Remove (%d):"
+msgstr "Za uklanjanje (%d):"
+
+#, fuzzy, c-format
+msgid "Total Download Size: %.2f %s\n"
+msgstr "Ukupna veličina preuzimanja : %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Installed Size: %.2f %s\n"
+msgstr "Ukupna veličina instalacije: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Net Upgrade Size: %.2f %s\n"
+msgstr "Ukupna veličina preuzimanja : %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Removed Size: %.2f %s\n"
+msgstr "Ukupna veličina uklonjenog: %.2f MB\n"
+
+#, c-format
+msgid "New optional dependencies for %s\n"
+msgstr "Nove opcione zavisnosti za %s\n"
+
+#, c-format
+msgid "Optional dependencies for %s\n"
+msgstr "Opcione zavisnosti za %s\n"
+
+#, c-format
+msgid "Repository %s\n"
+msgstr "Riznica %s\n"
+
+#, c-format
+msgid "Invalid value: %d is not between %d and %d\n"
+msgstr "Neispravna vrednost: %d nije između %d i %d\n"
+
+#, c-format
+msgid "Invalid number: %s\n"
+msgstr "Neispravan broj: %s\n"
+
+#, c-format
+msgid "Enter a selection (default=all)"
+msgstr "Unesite izbor (podrazumevano=sve)"
+
+#, c-format
+msgid "Enter a number (default=%d)"
+msgstr "Unesite broj (podrazumevani=%d)"
+
+#, c-format
+msgid "[Y/n]"
+msgstr "[D/n]"
+
+#, c-format
+msgid "[y/N]"
+msgstr "[d/N]"
+
+#, c-format
+msgid "Y"
+msgstr "D"
+
+#, c-format
+msgid "YES"
+msgstr "DA"
+
+#, c-format
+msgid "N"
+msgstr "N"
+
+#, c-format
+msgid "NO"
+msgstr "NE"
+
+#, c-format
+msgid "failed to allocate string\n"
+msgstr "neuspelo alociranje niske\n"
+
+#, c-format
+msgid "error: %s"
+msgstr "greška: %s"
+
+#, c-format
+msgid "warning: %s"
+msgstr "upozorenje: %s"
+
+#, c-format
+msgid "error: "
+msgstr "greška: "
+
+#, c-format
+msgid "warning: "
+msgstr "upozorenje: "
+
diff --git a/src/pacman/po/sv.po b/src/pacman/po/sv.po
new file mode 100644
index 00000000..0fc88783
--- /dev/null
+++ b/src/pacman/po/sv.po
@@ -0,0 +1,1116 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Pacman Development Team <pacman-dev@archlinux.org>
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Arch Linux Pacman package manager\n"
+"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
+"POT-Creation-Date: 2011-06-23 21:59-0500\n"
+"PO-Revision-Date: 2011-03-28 02:39+0000\n"
+"Last-Translator: toofishes <dpmcgee@gmail.com>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+#, c-format
+msgid "checking dependencies...\n"
+msgstr "kollar beroenden...\n"
+
+#, c-format
+msgid "checking for file conflicts...\n"
+msgstr "kollar efter filkonflikter...\n"
+
+#, c-format
+msgid "resolving dependencies...\n"
+msgstr "löser beroenden...\n"
+
+#, c-format
+msgid "looking for inter-conflicts...\n"
+msgstr "letar efter interna konflikter...\n"
+
+#, c-format
+msgid "installing %s...\n"
+msgstr "installerar %s...\n"
+
+#, c-format
+msgid "removing %s...\n"
+msgstr "tar bort %s...\n"
+
+#, c-format
+msgid "upgrading %s...\n"
+msgstr "uppgraderar %s...\n"
+
+#, c-format
+msgid "checking package integrity...\n"
+msgstr "kontrollerar paketintegritet...\n"
+
+#, c-format
+msgid "checking delta integrity...\n"
+msgstr "kollar delta integritet...\n"
+
+#, c-format
+msgid "applying deltas...\n"
+msgstr "applicerar deltas...\n"
+
+#, c-format
+msgid "generating %s with %s... "
+msgstr "genererar %s med %s... "
+
+#, c-format
+msgid "success!\n"
+msgstr "lyckades!\n"
+
+#, c-format
+msgid "failed.\n"
+msgstr "misslyckades.\n"
+
+#, c-format
+msgid ":: Retrieving packages from %s...\n"
+msgstr "Hämtar paket från %s...\n"
+
+#, c-format
+msgid "checking available disk space...\n"
+msgstr ""
+
+#, c-format
+msgid ":: %s is in IgnorePkg/IgnoreGroup. Install anyway?"
+msgstr ":: %s finns i IgnorePkg/IgnoreGroup. Installera ändå?"
+
+#, c-format
+msgid ":: Replace %s with %s/%s?"
+msgstr ":: Ersätt %s med %s/%s?"
+
+#, c-format
+msgid ":: %s and %s are in conflict. Remove %s?"
+msgstr ":: %s krockar med %s. Ta bort %s?"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s). Remove %s?"
+msgstr ":: %s krockar med %s (%s). Ta bort %s?"
+
+#, c-format
+msgid ""
+":: The following package cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgid_plural ""
+":: The following packages cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "Do you want to skip the above package for this upgrade?"
+msgid_plural "Do you want to skip the above packages for this upgrade?"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid ":: There are %d providers available for %s:\n"
+msgstr ""
+
+#, c-format
+msgid ":: %s-%s: local version is newer. Upgrade anyway?"
+msgstr ":: %s-%s: den lokala versionen är nyare. Uppgradera ändå?"
+
+#, c-format
+msgid ":: File %s is corrupted. Do you want to delete it?"
+msgstr ":: Filen %s är korrupt. Vill du ta bort den?"
+
+#, c-format
+msgid "installing"
+msgstr "installerar"
+
+#, c-format
+msgid "upgrading"
+msgstr "uppgraderar"
+
+#, c-format
+msgid "removing"
+msgstr "tar bort"
+
+#, c-format
+msgid "checking for file conflicts"
+msgstr "letar efter filkonflikter"
+
+#, c-format
+msgid "checking available disk space"
+msgstr ""
+
+#, c-format
+msgid "checking package integrity"
+msgstr ""
+
+#, c-format
+msgid "downloading %s...\n"
+msgstr "laddar ner %s...\n"
+
+#, c-format
+msgid "malloc failure: could not allocate %zd bytes\n"
+msgstr "malloc misslyckande: kunde inte allokera %zd bytes\n"
+
+#, c-format
+msgid "could not get current working directory\n"
+msgstr ""
+
+#, c-format
+msgid "could not chdir to download directory %s\n"
+msgstr "kunde inte chdir till nerladdningskatalogen% s\n"
+
+#, c-format
+msgid "running XferCommand: fork failed!\n"
+msgstr "vid körning av XferCommand: delning misslyckades!\n"
+
+#, c-format
+msgid "could not change directory to %s (%s)\n"
+msgstr ""
+
+#, c-format
+msgid "invalid value for 'CleanMethod' : '%s'\n"
+msgstr "ogiltigt värde för 'CleanMethod' : '%s'\n"
+
+#, c-format
+msgid ""
+"config file %s, line %d: directive '%s' in section '%s' not recognized.\n"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "config file %s, line %d: directive '%s' has invalid value '%s'\n"
+msgstr ""
+"konfigurationsfil %s, rad %d: Alla direktiv måste tillhöra en sektion.\n"
+
+#, c-format
+msgid ""
+"The mirror '%s' contains the $arch variable, but no Architecture is "
+"defined.\n"
+msgstr ""
+"Adressen '%s' innehålle $arch-variabeln, men ingen arkitektur är definerad.\n"
+
+#, c-format
+msgid "could not add server URL to database '%s': %s (%s)\n"
+msgstr "kunde inte lägga till serverns URL till databasen '%s': %s (%s)\n"
+
+#, c-format
+msgid "failed to initialize alpm library (%s)\n"
+msgstr "misslyckades att initialisera alpm bibliotek (%s)\n"
+
+#, c-format
+msgid "problem setting logfile '%s' (%s)\n"
+msgstr "problem med att ange loggfil '%s' (%s)\n"
+
+#, fuzzy, c-format
+msgid "problem setting gpgdir '%s' (%s)\n"
+msgstr "problem med att ange rootdir '%s' (%s)\n"
+
+#, c-format
+msgid "could not register '%s' database (%s)\n"
+msgstr "kunde inte registrera '%s' databas (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not set verify option for database '%s' (%s)\n"
+msgstr "kunde inte lägga till serverns URL till databasen '%s': %s (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not add mirror '%s' to database '%s' (%s)\n"
+msgstr "kunde inte lägga till serverns URL till databasen '%s': %s (%s)\n"
+
+#, c-format
+msgid "config parsing exceeded max recursion depth of %d.\n"
+msgstr ""
+
+#, c-format
+msgid "config file %s could not be read.\n"
+msgstr "konfigurationsfilen %s kunde inte läsas\n"
+
+#, c-format
+msgid "config file %s, line %d: bad section name.\n"
+msgstr "konfigurationsfil %s, rad %d: ogiltigt sektionsnamn.\n"
+
+#, c-format
+msgid "config file %s, line %d: syntax error in config file- missing key.\n"
+msgstr ""
+"konfigurationsfil %s, rad %d: syntax fel i konfigurationsfil- saknar "
+"nyckel.\n"
+
+#, c-format
+msgid "config file %s, line %d: All directives must belong to a section.\n"
+msgstr ""
+"konfigurationsfil %s, rad %d: Alla direktiv måste tillhöra en sektion.\n"
+
+#, c-format
+msgid "config file %s, line %d: directive '%s' needs a value\n"
+msgstr ""
+
+#, c-format
+msgid "no targets specified (use -h for help)\n"
+msgstr "inga mål angedda (använd -h för hjälp)\n"
+
+#, c-format
+msgid "no install reason specified (use -h for help)\n"
+msgstr ""
+
+#, c-format
+msgid "could not set install reason for package %s (%s)\n"
+msgstr ""
+
+#, c-format
+msgid "%s: install reason has been set to 'installed as dependency'\n"
+msgstr ""
+
+#, c-format
+msgid "%s: install reason has been set to 'explicitly installed'\n"
+msgstr ""
+
+#, c-format
+msgid "Explicitly installed"
+msgstr "Uttryckligt installerad"
+
+#, c-format
+msgid "Installed as a dependency for another package"
+msgstr "Installerad som beroende till ett annat paket"
+
+#, c-format
+msgid "Unknown"
+msgstr "Okänd"
+
+#, c-format
+msgid "Repository :"
+msgstr "Förråd :"
+
+#, c-format
+msgid "Name :"
+msgstr "Namn :"
+
+#, c-format
+msgid "Version :"
+msgstr "Version :"
+
+#, c-format
+msgid "URL :"
+msgstr "URL :"
+
+#, c-format
+msgid "Licenses :"
+msgstr "Licenser :"
+
+#, c-format
+msgid "Groups :"
+msgstr "Grupper :"
+
+#, c-format
+msgid "Provides :"
+msgstr "Tillhandahåller :"
+
+#, c-format
+msgid "Depends On :"
+msgstr "Beror på :"
+
+#, c-format
+msgid "Optional Deps :"
+msgstr "Alternativa Beroenden :"
+
+#, c-format
+msgid "Required By :"
+msgstr "Behövs av :"
+
+#, c-format
+msgid "Conflicts With :"
+msgstr "Strider Mot :"
+
+#, c-format
+msgid "Replaces :"
+msgstr "Ersätter :"
+
+#, fuzzy, c-format
+msgid "Download Size : %6.2f %s\n"
+msgstr "Storlek att ladda ner : %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Compressed Size: %6.2f %s\n"
+msgstr "Komprimerad Storlek: %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Installed Size : %6.2f %s\n"
+msgstr "Installerad Storlek : %6.2f K\n"
+
+#, c-format
+msgid "Packager :"
+msgstr "Paketerare :"
+
+#, c-format
+msgid "Architecture :"
+msgstr "Arkitektur :"
+
+#, c-format
+msgid "Build Date :"
+msgstr "Skapad den :"
+
+#, c-format
+msgid "Install Date :"
+msgstr "Installerad den :"
+
+#, c-format
+msgid "Install Reason :"
+msgstr "Skäl till installation :"
+
+#, c-format
+msgid "Install Script :"
+msgstr "Installations Skript :"
+
+#, c-format
+msgid "Yes"
+msgstr "Ja"
+
+#, c-format
+msgid "No"
+msgstr "Nej"
+
+#, c-format
+msgid "MD5 Sum :"
+msgstr "MD5 Summa :"
+
+#, c-format
+msgid "Description :"
+msgstr "Beskrivning :"
+
+#, c-format
+msgid "could not calculate checksums for %s\n"
+msgstr "kunde inte beräkna kontrollsummor för %s\n"
+
+#, c-format
+msgid "Backup Files:\n"
+msgstr "Säkerhetskopierade Filer:\n"
+
+#, c-format
+msgid "(none)\n"
+msgstr "(ingen)\n"
+
+#, c-format
+msgid "no changelog available for '%s'.\n"
+msgstr "ingen ändringslogg tillgänglig för '%s'.\n"
+
+#, c-format
+msgid "options"
+msgstr "alternativ"
+
+#, c-format
+msgid "file(s)"
+msgstr "fil(er)"
+
+#, c-format
+msgid "package(s)"
+msgstr "paket"
+
+#, c-format
+msgid "usage"
+msgstr "användning"
+
+#, c-format
+msgid "operation"
+msgstr "argument"
+
+#, c-format
+msgid "operations:\n"
+msgstr "argument:\n"
+
+#, c-format
+msgid ""
+"\n"
+"use '%s {-h --help}' with an operation for available options\n"
+msgstr ""
+"\n"
+"använd '%s {-h --help}' med ett argument för att se tillgängliga alternativ\n"
+
+#, c-format
+msgid ""
+" -c, --cascade remove packages and all packages that depend on them\n"
+msgstr ""
+" -c, --cascade tar bort paketen och alla paket som är beroende av "
+"dom\n"
+
+#, c-format
+msgid " -n, --nosave remove configuration files\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -s, --recursive remove unnecessary dependencies\n"
+" (-ss includes explicitly installed dependencies)\n"
+msgstr ""
+
+#, c-format
+msgid " -u, --unneeded remove unneeded packages\n"
+msgstr ""
+
+#, c-format
+msgid " -c, --changelog view the changelog of a package\n"
+msgstr " -c, --changelog visa ändringsloggen för ett paket\n"
+
+#, c-format
+msgid ""
+" -d, --deps list packages installed as dependencies [filter]\n"
+msgstr ""
+" -d, --deps visa paket installerade som beroenden [filtrera]\n"
+
+#, c-format
+msgid " -e, --explicit list packages explicitly installed [filter]\n"
+msgstr " -e, --explicit visa utryckligt installerade paket [filtrera]\n"
+
+#, c-format
+msgid " -g, --groups view all members of a package group\n"
+msgstr " -g, --groups visa alla medlemmar ur paketgruppen\n"
+
+#, c-format
+msgid ""
+" -i, --info view package information (-ii for backup files)\n"
+msgstr ""
+" -i, --info visa paketinformation (-ii för säkerhetskopierade "
+"filer)\n"
+
+#, c-format
+msgid ""
+" -k, --check check that the files owned by the package(s) are "
+"present\n"
+msgstr ""
+" -k, --check kontrollera att filerna ägda av paketet(en) är "
+"närvarnde\n"
+
+#, c-format
+msgid " -l, --list list the contents of the queried package\n"
+msgstr " -l, --list visa innehållet i det efterfrågade paketet\n"
+
+#, c-format
+msgid ""
+" -m, --foreign list installed packages not found in sync db(s) "
+"[filter]\n"
+msgstr ""
+" -m, --foreign visa installerade paket som inte hittades i sync db"
+"(s) [filter]\n"
+
+#, c-format
+msgid " -o, --owns <file> query the package that owns <file>\n"
+msgstr " -o, --owns <fil> fråga paketet som äger <fil>\n"
+
+#, c-format
+msgid " -p, --file <package> query a package file instead of the database\n"
+msgstr " -p, --file <paket> fråga en paketfil istället för databasen\n"
+
+#, c-format
+msgid " -q, --quiet show less information for query and search\n"
+msgstr ""
+" -q, --quiet visa mindre information för en förfrågan och sökning\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search locally-installed packages for matching "
+"strings\n"
+msgstr ""
+" -s, --search <regex> sök i lokalt installerade paket efter matchande "
+"strängar\n"
+
+#, c-format
+msgid ""
+" -t, --unrequired list packages not required by any package [filter]\n"
+msgstr ""
+" -t, --unrequired visa paket som inte behövs av något annat paket "
+"[filtrera]\n"
+
+#, c-format
+msgid " -u, --upgrades list outdated packages [filter]\n"
+msgstr " -u, --upgrades listar utdaterade paket [filter]\n"
+
+#, c-format
+msgid ""
+" -c, --clean remove old packages from cache directory (-cc for "
+"all)\n"
+msgstr ""
+" -c, --clean ta bort gamla paket från chache katalogen(-cc för "
+"alla)\n"
+
+#, c-format
+msgid " -i, --info view package information\n"
+msgstr " -i, --info visa paketinformation\n"
+
+#, c-format
+msgid " -l, --list <repo> view a list of packages in a repo\n"
+msgstr " -l, --list <förråd> visa en lista över paket i ett förråd\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search remote repositories for matching strings\n"
+msgstr " -s, --search <regex> sök i externa förråd efter matchande strängar\n"
+
+#, c-format
+msgid ""
+" -u, --sysupgrade upgrade installed packages (-uu allows downgrade)\n"
+msgstr ""
+" -u, --sysupgrade uppgradera alla utdaterade paket (-uu möjliggör "
+"nedgradering)\n"
+
+#, c-format
+msgid ""
+" -w, --downloadonly download packages but do not install/upgrade "
+"anything\n"
+msgstr ""
+" -w, --downloadonly ladda ner paket men installera/uppdatera ingenting\n"
+
+#, c-format
+msgid ""
+" -y, --refresh download fresh package databases from the server\n"
+msgstr " -y, --refresh ladda ner ny databas från servern\n"
+
+#, c-format
+msgid " --needed don't reinstall up to date packages\n"
+msgstr " --needed ominstallera inte paket som är aktuella\n"
+
+#, c-format
+msgid " --asdeps mark packages as non-explicitly installed\n"
+msgstr ""
+" --asdeps markera paket som icke-utryckligt installerade\n"
+
+#, c-format
+msgid " --asexplicit mark packages as explicitly installed\n"
+msgstr " --asexplicit markera paket som utryckligt installerade\n"
+
+#, c-format
+msgid " -f, --force force install, overwrite conflicting files\n"
+msgstr ""
+" -f, --force tvingfa installation, skriv över motstridiga filer\n"
+
+#, c-format
+msgid " --asdeps install packages as non-explicitly installed\n"
+msgstr ""
+" --asdeps installera paket som icke-utryckligt installerade\n"
+
+#, c-format
+msgid " --asexplicit install packages as explicitly installed\n"
+msgstr " --asexplicit installera paket som utryckligt installerade\n"
+
+#, c-format
+msgid ""
+" --ignore <pkg> ignore a package upgrade (can be used more than "
+"once)\n"
+msgstr ""
+" --ignore <pkg> ignorera en paketuppdatering (kan användas mer än en "
+"gång)\n"
+
+#, c-format
+msgid ""
+" --ignoregroup <grp>\n"
+" ignore a group upgrade (can be used more than once)\n"
+msgstr ""
+" --ignoregroup <grp>\n"
+" ignorera en gruppuppgradering (kan användas mer än en "
+"gång)\n"
+
+#, c-format
+msgid ""
+" -d, --nodeps skip dependency version checks (-dd to skip all "
+"checks)\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -k, --dbonly only modify database entries, not package files\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" --noprogressbar do not show a progress bar when downloading files\n"
+msgstr ""
+" --noprogressbar visa inte en förloppsindikator vid nerladdning av "
+"filer\n"
+
+#, c-format
+msgid ""
+" --noscriptlet do not execute the install scriptlet if one exists\n"
+msgstr ""
+" --noscriptlet kör inte installations 'scriptlet' om en redan "
+"existerar\n"
+
+#, c-format
+msgid ""
+" --print print the targets instead of performing the "
+"operation\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" --print-format <string>\n"
+" specify how the targets should be printed\n"
+msgstr ""
+" --print-format <string>\n"
+" specificera utskriftsformatet\n"
+
+#, c-format
+msgid " -b, --dbpath <path> set an alternate database location\n"
+msgstr " -b, --dbpath <path> ange en alternativ plats för databasen\n"
+
+#, c-format
+msgid " -r, --root <path> set an alternate installation root\n"
+msgstr " -r, --root <path> ange en alternativ installations root\n"
+
+#, c-format
+msgid " -v, --verbose be verbose\n"
+msgstr " -v, --verbose var tydlig\n"
+
+#, c-format
+msgid " --arch <arch> set an alternate architecture\n"
+msgstr " --arch <arch> ange en alternativ arkitektur\n"
+
+#, c-format
+msgid " --cachedir <dir> set an alternate package cache location\n"
+msgstr " --cachedir <dir> ange en alternativ plats för paketcachen\n"
+
+#, c-format
+msgid " --config <path> set an alternate configuration file\n"
+msgstr " --config <path> ange en alternativ konfigurationsfil\n"
+
+#, c-format
+msgid " --debug display debug messages\n"
+msgstr " --debug visa felsöknings meddelanden\n"
+
+#, fuzzy, c-format
+msgid " --gpgdir <path> set an alternate home directory for GnuPG\n"
+msgstr " --logfile <path> ange en alternativ loggfil\n"
+
+#, c-format
+msgid " --logfile <path> set an alternate log file\n"
+msgstr " --logfile <path> ange en alternativ loggfil\n"
+
+#, c-format
+msgid " --noconfirm do not ask for any confirmation\n"
+msgstr " --noconfirm fråga inte efter bekräftelse\n"
+
+#, c-format
+msgid ""
+" This program may be freely redistributed under\n"
+" the terms of the GNU General Public License.\n"
+msgstr ""
+" Det här programet får fritt distributeras under \n"
+" villkoren angivna i GNU General Public License.\n"
+
+#, c-format
+msgid "'%s' is not a valid debug level\n"
+msgstr "'%s' är inte en giltig felsökningsnivå\n"
+
+#, c-format
+msgid "only one operation may be used at a time\n"
+msgstr "enbart en operation kan användas på samma gång\n"
+
+#, c-format
+msgid "invalid option\n"
+msgstr ""
+
+#, c-format
+msgid "buffer overflow detected in arg parsing\n"
+msgstr ""
+
+#, c-format
+msgid "failed to reopen stdin for reading: (%s)\n"
+msgstr ""
+
+#, c-format
+msgid "you cannot perform this operation unless you are root.\n"
+msgstr "du kan inte genomföra denna operation om du inte är root.\n"
+
+#, c-format
+msgid "no operation specified (use -h for help)\n"
+msgstr "ingen operation specifierad (använd -h för hjälp)\n"
+
+#, c-format
+msgid "%s is owned by %s %s\n"
+msgstr "%s ägs av %s %s\n"
+
+#, c-format
+msgid "no file was specified for --owns\n"
+msgstr "ingen fil specifierades för --owns\n"
+
+#, c-format
+msgid "failed to find '%s' in PATH: %s\n"
+msgstr "misslyckades hitta '%s' i PATH: %s\n"
+
+#, c-format
+msgid "failed to read file '%s': %s\n"
+msgstr "misslyckades att läsa fil '%s': %s\n"
+
+#, c-format
+msgid "cannot determine ownership of directory '%s'\n"
+msgstr ""
+
+#, c-format
+msgid "cannot determine real path for '%s': %s\n"
+msgstr "kan inte bestämma riktig sökväg för '%s': %s\n"
+
+#, c-format
+msgid "path too long: %s%s\n"
+msgstr ""
+
+#, c-format
+msgid "No package owns %s\n"
+msgstr "Inget paket äger %s\n"
+
+#, c-format
+msgid "group \"%s\" was not found\n"
+msgstr "gruppen \"%s\" hittades inte\n"
+
+#, c-format
+msgid "%s: %d total file, "
+msgid_plural "%s: %d total files, "
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "%d missing file\n"
+msgid_plural "%d missing files\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid "no usable package repositories configured.\n"
+msgstr "inga användbara paketförråd konfigurerade.\n"
+
+#, c-format
+msgid "package \"%s\" not found\n"
+msgstr "paketet \"%s\" hittades inte\n"
+
+#, c-format
+msgid "failed to prepare transaction (%s)\n"
+msgstr "misslyckades att förbereda överföring (%s)\n"
+
+#, c-format
+msgid ":: package %s does not have a valid architecture\n"
+msgstr ":: paket %s har inte en giltig arkitektur.\n"
+
+#, c-format
+msgid ":: %s: requires %s\n"
+msgstr ":: %s: behöver %s\n"
+
+#, c-format
+msgid "%s is designated as a HoldPkg.\n"
+msgstr "%s är utnämnd som en HoldPkg.\n"
+
+#, c-format
+msgid "HoldPkg was found in target list. Do you want to continue?"
+msgstr "HoldPkg hittades i mållistan. Vill du fortsätta?"
+
+#, c-format
+msgid " there is nothing to do\n"
+msgstr " det finns inget att göra\n"
+
+#, c-format
+msgid "Do you want to remove these packages?"
+msgstr "Vill du ta bort dessa paket?"
+
+#, c-format
+msgid "failed to commit transaction (%s)\n"
+msgstr "misslyckades att påbörja överföringen (%s)\n"
+
+#, c-format
+msgid "could not access database directory\n"
+msgstr "kunde inte få tillgång till databaskatalogen\n"
+
+#, c-format
+msgid "could not remove %s\n"
+msgstr ""
+
+#, c-format
+msgid "Do you want to remove %s?"
+msgstr "Vill du ta bort %s?"
+
+#, c-format
+msgid "Database directory: %s\n"
+msgstr "Databaskatalog: %s\n"
+
+#, c-format
+msgid "Do you want to remove unused repositories?"
+msgstr "Vill du ta bort oanvända förråd?"
+
+#, c-format
+msgid "Database directory cleaned up\n"
+msgstr "Databaskatalog upprensad\n"
+
+#, c-format
+msgid "Cache directory: %s\n"
+msgstr "Cacheförråd: %s\n"
+
+#, c-format
+msgid "Packages to keep:\n"
+msgstr ""
+
+#, c-format
+msgid " All locally installed packages\n"
+msgstr ""
+
+#, c-format
+msgid " All current sync database packages\n"
+msgstr ""
+
+#, c-format
+msgid "Do you want to remove all other packages from cache?"
+msgstr ""
+
+#, c-format
+msgid "removing old packages from cache...\n"
+msgstr "tar bort gamla paket från cachen...\n"
+
+#, c-format
+msgid "Do you want to remove ALL files from cache?"
+msgstr "Vill du ta bort ALLA filer från cacen?"
+
+#, c-format
+msgid "removing all files from cache...\n"
+msgstr "tar bort alla filer från cachen...\n"
+
+#, c-format
+msgid "could not access cache directory %s\n"
+msgstr "kunde inte få tillgång till cachekatalogen %s\n"
+
+#, c-format
+msgid "File %s does not seem to be a valid package, remove it?"
+msgstr "Filen %s verkar inte vara ett giltigt paket, ta bort det?"
+
+#, c-format
+msgid "failed to update %s (%s)\n"
+msgstr "misslyckades att uppdatera %s (%s)\n"
+
+#, c-format
+msgid " %s is up to date\n"
+msgstr " %s är senaste versionen\n"
+
+#, c-format
+msgid "failed to synchronize any databases\n"
+msgstr "misslyckades att synkronisera någon databas\n"
+
+#, c-format
+msgid "installed"
+msgstr "installerad"
+
+#, c-format
+msgid "repository '%s' does not exist\n"
+msgstr "förrådet '%s' existerar inte\n"
+
+#, c-format
+msgid "package '%s' was not found in repository '%s'\n"
+msgstr "paketet '%s' hittades inte i förrådet '%s'\n"
+
+#, c-format
+msgid "package '%s' was not found\n"
+msgstr "paketet '%s' hittades inte\n"
+
+#, c-format
+msgid "repository \"%s\" was not found.\n"
+msgstr "förrådet \"%s\" hittades inte.\n"
+
+#, c-format
+msgid "skipping target: %s\n"
+msgstr "hoppar över målet: %s\n"
+
+#, c-format
+msgid "target not found: %s\n"
+msgstr ""
+
+#, c-format
+msgid ":: There are %d members in group %s:\n"
+msgstr ""
+
+#, c-format
+msgid "database not found: %s\n"
+msgstr ""
+
+#, c-format
+msgid ":: Starting full system upgrade...\n"
+msgstr ":: Påbörjar full systemuppgradering...\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict\n"
+msgstr ":: %s och %s krockar.\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s)\n"
+msgstr ":: %s krockar med %s (%s)\n"
+
+#, c-format
+msgid "Proceed with download?"
+msgstr "Forsätt med nerladdning?"
+
+#, c-format
+msgid "Proceed with installation?"
+msgstr "Fortsätt med installation?"
+
+#, c-format
+msgid "%s exists in both '%s' and '%s'\n"
+msgstr "%s existerar i både '%s' oc i '%s'\n"
+
+#, c-format
+msgid "%s: %s exists in filesystem\n"
+msgstr "%s: %s existerar i filsystemet\n"
+
+#, c-format
+msgid "%s is invalid or corrupted\n"
+msgstr "%s är invalid eller korrumperad\n"
+
+#, c-format
+msgid "Errors occurred, no packages were upgraded.\n"
+msgstr "Fel uppstod, inga paket uppgraderades.\n"
+
+#, c-format
+msgid ":: Synchronizing package databases...\n"
+msgstr ":: Synkroniserar paketdatabasen...\n"
+
+#, c-format
+msgid ":: The following packages should be upgraded first :\n"
+msgstr ":: Följande paket borde uppgraderas först :\n"
+
+#, c-format
+msgid ""
+":: Do you want to cancel the current operation\n"
+":: and upgrade these packages now?"
+msgstr ""
+":: Vill du avbryta den nuvarande operationen\n"
+":: och uppgradera dessa paket nu?"
+
+#, c-format
+msgid "failed to init transaction (%s)\n"
+msgstr "misslyckades att initialisera överföringen (%s)\n"
+
+#, c-format
+msgid ""
+" if you're sure a package manager is not already\n"
+" running, you can remove %s\n"
+msgstr ""
+" om du är säker på att en pakethanterare inte redan\n"
+" körs, så kan du ta bort %s\n"
+
+#, c-format
+msgid " try running pacman-db-upgrade\n"
+msgstr ""
+
+#, c-format
+msgid "failed to release transaction (%s)\n"
+msgstr "misslyckades att frigöra överföringen (%s)\n"
+
+#, c-format
+msgid "None"
+msgstr "Ingen"
+
+#, c-format
+msgid "insufficient columns available for table display\n"
+msgstr ""
+
+#, c-format
+msgid "Name"
+msgstr ""
+
+#, c-format
+msgid "Old Version"
+msgstr ""
+
+#, c-format
+msgid "New Version"
+msgstr ""
+
+#, c-format
+msgid "Size"
+msgstr ""
+
+#, c-format
+msgid "Targets (%d):"
+msgstr "Mål (%d):"
+
+#, c-format
+msgid "Remove (%d):"
+msgstr "Ta bort (%d):"
+
+#, fuzzy, c-format
+msgid "Total Download Size: %.2f %s\n"
+msgstr "Totalt Nerladdad Storlek: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Installed Size: %.2f %s\n"
+msgstr "Totalt Installerad Storlek: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Net Upgrade Size: %.2f %s\n"
+msgstr "Totalt Nerladdad Storlek: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Removed Size: %.2f %s\n"
+msgstr "Totalt Bortagen Storlek: %.2f MB\n"
+
+#, c-format
+msgid "New optional dependencies for %s\n"
+msgstr "Nya valfria beroenden för %s\n"
+
+#, c-format
+msgid "Optional dependencies for %s\n"
+msgstr "Valfria beroenden för %s\n"
+
+#, c-format
+msgid "Repository %s\n"
+msgstr ""
+
+#, c-format
+msgid "Invalid value: %d is not between %d and %d\n"
+msgstr ""
+
+#, c-format
+msgid "Invalid number: %s\n"
+msgstr ""
+
+#, c-format
+msgid "Enter a selection (default=all)"
+msgstr ""
+
+#, c-format
+msgid "Enter a number (default=%d)"
+msgstr ""
+
+#, c-format
+msgid "[Y/n]"
+msgstr "[Y/n]"
+
+#, c-format
+msgid "[y/N]"
+msgstr "[y/N]"
+
+#, c-format
+msgid "Y"
+msgstr "Y"
+
+#, c-format
+msgid "YES"
+msgstr "YES"
+
+#, c-format
+msgid "N"
+msgstr "N"
+
+#, c-format
+msgid "NO"
+msgstr "NO"
+
+#, c-format
+msgid "failed to allocate string\n"
+msgstr ""
+
+#, c-format
+msgid "error: %s"
+msgstr "fel: %s"
+
+#, c-format
+msgid "warning: %s"
+msgstr "varning: %s"
+
+#, c-format
+msgid "error: "
+msgstr "fel: "
+
+#, c-format
+msgid "warning: "
+msgstr "varning: "
+
diff --git a/src/pacman/po/tr.po b/src/pacman/po/tr.po
new file mode 100644
index 00000000..ba7bbc86
--- /dev/null
+++ b/src/pacman/po/tr.po
@@ -0,0 +1,1120 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Pacman Development Team <pacman-dev@archlinux.org>
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Arch Linux Pacman package manager\n"
+"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
+"POT-Creation-Date: 2011-06-23 21:59-0500\n"
+"PO-Revision-Date: 2011-04-06 08:03+0000\n"
+"Last-Translator: tarakbumba <tarakbumba@gmail.com>\n"
+"Language-Team: Turkish <None>\n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0\n"
+
+#, c-format
+msgid "checking dependencies...\n"
+msgstr "paket bağımlılıkları araştırılıyor...\n"
+
+#, c-format
+msgid "checking for file conflicts...\n"
+msgstr "dosya çakışmaları denetleniyor...\n"
+
+#, c-format
+msgid "resolving dependencies...\n"
+msgstr "paket bağımlılıkları çözümleniyor...\n"
+
+#, c-format
+msgid "looking for inter-conflicts...\n"
+msgstr "varsa paketler arası çakışmalara bakılıyor...\n"
+
+#, c-format
+msgid "installing %s...\n"
+msgstr "%s yükleniyor...\n"
+
+#, c-format
+msgid "removing %s...\n"
+msgstr "%s kaldırılıyor...\n"
+
+#, c-format
+msgid "upgrading %s...\n"
+msgstr "%s güncelleniyor...\n"
+
+#, c-format
+msgid "checking package integrity...\n"
+msgstr "paket bütünlüğü doğrulanıyor...\n"
+
+#, c-format
+msgid "checking delta integrity...\n"
+msgstr "paket farklılıklarının bütünlüğü denetleniyor...\n"
+
+#, c-format
+msgid "applying deltas...\n"
+msgstr "paket farklılıkları uygulanıyor...\n"
+
+#, c-format
+msgid "generating %s with %s... "
+msgstr "%s ile %s oluşturuluyor... "
+
+#, c-format
+msgid "success!\n"
+msgstr "başarılı!\n"
+
+#, c-format
+msgid "failed.\n"
+msgstr "başarısız.\n"
+
+#, c-format
+msgid ":: Retrieving packages from %s...\n"
+msgstr ":: paketler %s deposundan alınıyor...\n"
+
+#, c-format
+msgid "checking available disk space...\n"
+msgstr "disk alanı kontrol ediliyor...\n"
+
+#, c-format
+msgid ":: %s is in IgnorePkg/IgnoreGroup. Install anyway?"
+msgstr ""
+":: %s paketi IgnorePkg ya da IgnoreGroup içerisinde bulunuyor. Yine de "
+"kurulmasını istiyor musunuz?"
+
+#, c-format
+msgid ":: Replace %s with %s/%s?"
+msgstr ":: %s paketini %s/%s ile değiştirmek ister misiniz?"
+
+#, c-format
+msgid ":: %s and %s are in conflict. Remove %s?"
+msgstr ":: %s, %s ile çakışıyor. %s paketinin kaldırılmasını istiyor musunuz?"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s). Remove %s?"
+msgstr ""
+":: %s, %s ile çakışıyor (%s). %s paketinin kaldırılmasını istiyor musunuz?"
+
+#, c-format
+msgid ""
+":: The following package cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgid_plural ""
+":: The following packages cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgstr[0] ""
+":: Aşağıdaki paketler çözümlenemeyen bağımlılıkları nedeniyle "
+"yükseltilemez:\n"
+
+#, c-format
+msgid "Do you want to skip the above package for this upgrade?"
+msgid_plural "Do you want to skip the above packages for this upgrade?"
+msgstr[0] "Bu yükseltme için yukarıdaki paketleri atlamak istiyor musunuz?"
+
+#, c-format
+msgid ":: There are %d providers available for %s:\n"
+msgstr ":: %d adet sağlayıcı paket %s için kullanılabilir:\n"
+
+#, c-format
+msgid ":: %s-%s: local version is newer. Upgrade anyway?"
+msgstr ""
+":: %s-%s: yerel sürüm daha yeni. Yine de güncellenmesini istiyor musunuz?"
+
+#, c-format
+msgid ":: File %s is corrupted. Do you want to delete it?"
+msgstr ":: %s dosyası bozuk. Silmek ister misiniz?"
+
+#, c-format
+msgid "installing"
+msgstr "yükleniyor"
+
+#, c-format
+msgid "upgrading"
+msgstr "güncelleniyor"
+
+#, c-format
+msgid "removing"
+msgstr "kaldırılıyor"
+
+#, c-format
+msgid "checking for file conflicts"
+msgstr "dosya çakışmaları kontrol ediliyor"
+
+#, c-format
+msgid "checking available disk space"
+msgstr "disk alanı kontrol ediliyor"
+
+#, c-format
+msgid "checking package integrity"
+msgstr "paket bütünlüğü kontrol ediliyor"
+
+#, c-format
+msgid "downloading %s...\n"
+msgstr "%s indiriliyor...\n"
+
+#, c-format
+msgid "malloc failure: could not allocate %zd bytes\n"
+msgstr "hafıza tahsisi hatası: %zd bayt tahsis edilemedi\n"
+
+#, c-format
+msgid "could not get current working directory\n"
+msgstr "mevcut çalışma dizini alınamadı\n"
+
+#, c-format
+msgid "could not chdir to download directory %s\n"
+msgstr "indirme dizini %s dizinine geçilemedi\n"
+
+#, c-format
+msgid "running XferCommand: fork failed!\n"
+msgstr "XferCommand çalıştırılıyor: çatallanma başarısız!\n"
+
+#, c-format
+msgid "could not change directory to %s (%s)\n"
+msgstr "%s dizinine geçilemedi (%s)\n"
+
+#, c-format
+msgid "invalid value for 'CleanMethod' : '%s'\n"
+msgstr "'CleanMethod' için geçersiz değer : '%s'\n"
+
+#, c-format
+msgid ""
+"config file %s, line %d: directive '%s' in section '%s' not recognized.\n"
+msgstr "ayar dosyası %s, satır %d: '%s' direktifi '%s' bölümü için geçersiz.\n"
+
+#, fuzzy, c-format
+msgid "config file %s, line %d: directive '%s' has invalid value '%s'\n"
+msgstr ""
+"yapılandırma dosyası %s, satır %d: '%s' direktifine bir değer atanmalı\n"
+
+#, c-format
+msgid ""
+"The mirror '%s' contains the $arch variable, but no Architecture is "
+"defined.\n"
+msgstr ""
+"'%s' yansısı $arch değişkenini barındırıyor, fakat mimari belirtilmedi.\n"
+
+#, c-format
+msgid "could not add server URL to database '%s': %s (%s)\n"
+msgstr "sunucu adresi '%s' veritabanına eklenemedi: %s (%s)\n"
+
+#, c-format
+msgid "failed to initialize alpm library (%s)\n"
+msgstr "alpm kütüphanesi başlatılamadı (%s)\n"
+
+#, c-format
+msgid "problem setting logfile '%s' (%s)\n"
+msgstr "kayıt dosyasını '%s' (%s) ayarlama sorunu\n"
+
+#, fuzzy, c-format
+msgid "problem setting gpgdir '%s' (%s)\n"
+msgstr "kök dizinini '%s' (%s) ayarlama sorunu\n"
+
+#, c-format
+msgid "could not register '%s' database (%s)\n"
+msgstr "veritabanı (%s) kaydedilemedi (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not set verify option for database '%s' (%s)\n"
+msgstr "sunucu adresi '%s' veritabanına eklenemedi: %s (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not add mirror '%s' to database '%s' (%s)\n"
+msgstr "sunucu adresi '%s' veritabanına eklenemedi: %s (%s)\n"
+
+#, c-format
+msgid "config parsing exceeded max recursion depth of %d.\n"
+msgstr ""
+
+#, c-format
+msgid "config file %s could not be read.\n"
+msgstr "ayar dosyası %s okunamadı.\n"
+
+#, c-format
+msgid "config file %s, line %d: bad section name.\n"
+msgstr "ayar dosyası %s, satır %d: hatalı bölüm adı.\n"
+
+#, c-format
+msgid "config file %s, line %d: syntax error in config file- missing key.\n"
+msgstr ""
+"ayar dosyası %s, satır %d: ayar dosyasında söz dizimi hatası- eksik "
+"anahtar.\n"
+
+#, c-format
+msgid "config file %s, line %d: All directives must belong to a section.\n"
+msgstr "ayar dosyası %s, satır %d: Tüm direktifler bir bölüme ait olmalı.\n"
+
+#, c-format
+msgid "config file %s, line %d: directive '%s' needs a value\n"
+msgstr ""
+"yapılandırma dosyası %s, satır %d: '%s' direktifine bir değer atanmalı\n"
+
+#, c-format
+msgid "no targets specified (use -h for help)\n"
+msgstr "hedef belirtilmedi (yardım için -h kullanın)\n"
+
+#, c-format
+msgid "no install reason specified (use -h for help)\n"
+msgstr "kurulum sebebi belirtilmedi (yardım için -h kullanın)\n"
+
+#, c-format
+msgid "could not set install reason for package %s (%s)\n"
+msgstr "%s paketi için kurulum sebebi ayarlanamadı (%s)\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'installed as dependency'\n"
+msgstr "%s: kurulum sebebi 'bağımlılık olarak kuruldu' olarak belirlendi\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'explicitly installed'\n"
+msgstr "%s: kurulum sebebi 'doğrudan kurulmuş' olarak belirlendi\n"
+
+#, c-format
+msgid "Explicitly installed"
+msgstr "Doğrudan kurulmuş"
+
+#, c-format
+msgid "Installed as a dependency for another package"
+msgstr "Başka bir paketin bağımlılığı olarak kurulmuş"
+
+#, c-format
+msgid "Unknown"
+msgstr "Bilinmiyor"
+
+#, c-format
+msgid "Repository :"
+msgstr "Depo :"
+
+#, c-format
+msgid "Name :"
+msgstr "İsim :"
+
+#, c-format
+msgid "Version :"
+msgstr "Sürüm :"
+
+#, c-format
+msgid "URL :"
+msgstr "URL :"
+
+#, c-format
+msgid "Licenses :"
+msgstr "Lisanslar :"
+
+#, c-format
+msgid "Groups :"
+msgstr "Gruplar :"
+
+#, c-format
+msgid "Provides :"
+msgstr "Sağladıkları :"
+
+#, c-format
+msgid "Depends On :"
+msgstr "Bağımlılıkları :"
+
+#, c-format
+msgid "Optional Deps :"
+msgstr "Opsiyonel Bağımlılık(lar) :"
+
+#, c-format
+msgid "Required By :"
+msgstr "İhtiyaç Duyan Paket(ler) :"
+
+#, c-format
+msgid "Conflicts With :"
+msgstr "Çakıştığı Paket(ler) :"
+
+#, c-format
+msgid "Replaces :"
+msgstr "Değiştirdiği Paket(ler) :"
+
+#, fuzzy, c-format
+msgid "Download Size : %6.2f %s\n"
+msgstr "İndirme Boyutu : %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Compressed Size: %6.2f %s\n"
+msgstr "Sıkıştırılmış Boyutu : %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Installed Size : %6.2f %s\n"
+msgstr "Kapladığı Alan : %6.2f K\n"
+
+#, c-format
+msgid "Packager :"
+msgstr "Paket Sorumlusu :"
+
+#, c-format
+msgid "Architecture :"
+msgstr "Mimari :"
+
+#, c-format
+msgid "Build Date :"
+msgstr "Derlenme Tarihi :"
+
+#, c-format
+msgid "Install Date :"
+msgstr "Kurulum Tarihi :"
+
+#, c-format
+msgid "Install Reason :"
+msgstr "Kurulum Sebebi :"
+
+#, c-format
+msgid "Install Script :"
+msgstr "Kurulum Betiği :"
+
+#, c-format
+msgid "Yes"
+msgstr "Evet"
+
+#, c-format
+msgid "No"
+msgstr "Hayır"
+
+#, c-format
+msgid "MD5 Sum :"
+msgstr "MD5 Çıktısı :"
+
+#, c-format
+msgid "Description :"
+msgstr "Açıklama :"
+
+#, c-format
+msgid "could not calculate checksums for %s\n"
+msgstr "%s için bütünlük kontrolü hesaplanamadı\n"
+
+#, c-format
+msgid "Backup Files:\n"
+msgstr "Yedek Dosyalar :\n"
+
+#, c-format
+msgid "(none)\n"
+msgstr "(yok)\n"
+
+#, c-format
+msgid "no changelog available for '%s'.\n"
+msgstr "'%s' için değişim kaydı bulunmuyor.\n"
+
+#, c-format
+msgid "options"
+msgstr "seçenekler"
+
+#, c-format
+msgid "file(s)"
+msgstr "dosya(lar)"
+
+#, c-format
+msgid "package(s)"
+msgstr "paket(ler)"
+
+#, c-format
+msgid "usage"
+msgstr "kullanım"
+
+#, c-format
+msgid "operation"
+msgstr "işlem"
+
+#, c-format
+msgid "operations:\n"
+msgstr "işlemler:\n"
+
+#, c-format
+msgid ""
+"\n"
+"use '%s {-h --help}' with an operation for available options\n"
+msgstr ""
+"\n"
+"daha ayrıntılı bilgi için '%s {-h --help}' kullanın\n"
+
+#, c-format
+msgid ""
+" -c, --cascade remove packages and all packages that depend on them\n"
+msgstr ""
+" -c, --cascade paket(ler)i ve on(lar)a ait tüm bağımlılıkları kaldır\n"
+
+#, c-format
+msgid " -n, --nosave remove configuration files\n"
+msgstr " -n, --nosave yapılandırma dosyalarını kaldır\n"
+
+#, c-format
+msgid ""
+" -s, --recursive remove unnecessary dependencies\n"
+" (-ss includes explicitly installed dependencies)\n"
+msgstr ""
+" -s, --recursive gereksiz bağımlılıkları\n"
+"kaldır\n"
+" (-ss includes explicitly installed dependencies)\n"
+
+#, c-format
+msgid " -u, --unneeded remove unneeded packages\n"
+msgstr " -u, --unneeded gereksiz paketleri kaldır\n"
+
+#, c-format
+msgid " -c, --changelog view the changelog of a package\n"
+msgstr " -c, --changelog paketin değişim kaydını göster\n"
+
+#, c-format
+msgid ""
+" -d, --deps list packages installed as dependencies [filter]\n"
+msgstr ""
+" -d, --deps bağımlılık olarak yüklenen paketleri listele "
+"[filtre]\n"
+
+#, c-format
+msgid " -e, --explicit list packages explicitly installed [filter]\n"
+msgstr " -e, --explicit doğrudan kurulan paketleri listele [filtre]\n"
+
+#, c-format
+msgid " -g, --groups view all members of a package group\n"
+msgstr " -g, --groups paket grubundaki tüm paketleri göster\n"
+
+#, c-format
+msgid ""
+" -i, --info view package information (-ii for backup files)\n"
+msgstr ""
+" -i, --info paket bilgisini göster (yedek dosyaları için -ii)\n"
+
+#, c-format
+msgid ""
+" -k, --check check that the files owned by the package(s) are "
+"present\n"
+msgstr ""
+" -k, --check pakette bulunan dosyaların varlığını kontrol et\n"
+
+#, c-format
+msgid " -l, --list list the contents of the queried package\n"
+msgstr " -l, --list sorgulanan paketin içeriğini listele\n"
+
+#, c-format
+msgid ""
+" -m, --foreign list installed packages not found in sync db(s) "
+"[filter]\n"
+msgstr ""
+" -m, --foreign senkronize veritabanında bulunmayan paketleri listele "
+"[filtre]\n"
+
+#, c-format
+msgid " -o, --owns <file> query the package that owns <file>\n"
+msgstr " -o, --owns <dosya> <dosya> adlı dosyayı içeren paketi sorgula\n"
+
+#, c-format
+msgid " -p, --file <package> query a package file instead of the database\n"
+msgstr " -p, --file <paket> veritabanı yerine paket dosyasını sorgula\n"
+
+#, c-format
+msgid " -q, --quiet show less information for query and search\n"
+msgstr ""
+" -q, --quiet sorgulama ve arama sırasında daha az bilgi göster\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search locally-installed packages for matching "
+"strings\n"
+msgstr ""
+" -s, --search <regex> kurulu paketler içerisinde söz dizimine uyarak arama "
+"yap\n"
+
+#, c-format
+msgid ""
+" -t, --unrequired list packages not required by any package [filter]\n"
+msgstr ""
+" -t, --unrequired hiçbir paket tarafından gereksinim duyulmayan "
+"paketleri listele [filtre]\n"
+
+#, c-format
+msgid " -u, --upgrades list outdated packages [filter]\n"
+msgstr " -u, --upgrades güncellenebilecek paketleri listele [filtre]\n"
+
+#, c-format
+msgid ""
+" -c, --clean remove old packages from cache directory (-cc for "
+"all)\n"
+msgstr ""
+" -c, --clean önbellekteki eski paketleri kaldır (hepsi için -cc)\n"
+
+#, c-format
+msgid " -i, --info view package information\n"
+msgstr " -i, --info paket bilgisini göster\n"
+
+#, c-format
+msgid " -l, --list <repo> view a list of packages in a repo\n"
+msgstr " -l, --list <depo> depodaki paket listesini göster\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search remote repositories for matching strings\n"
+msgstr " -s, --search <regex> depo(lar)da söz dizimine uyan arama yap\n"
+
+#, c-format
+msgid ""
+" -u, --sysupgrade upgrade installed packages (-uu allows downgrade)\n"
+msgstr ""
+" -u, --sysupgrade kurulu paketleri güncelle (-uu eski sürüme çevirmeyi "
+"etkinleştirir)\n"
+
+#, c-format
+msgid ""
+" -w, --downloadonly download packages but do not install/upgrade "
+"anything\n"
+msgstr ""
+" -w, --downloadonly paketleri sadece indir ve kurulum ya da güncelleme "
+"yapma\n"
+
+#, c-format
+msgid ""
+" -y, --refresh download fresh package databases from the server\n"
+msgstr " -y, --refresh sunucudan güncel paket veritabanını indir\n"
+
+#, c-format
+msgid " --needed don't reinstall up to date packages\n"
+msgstr " --needed güncel paketleri tekrar yükleme\n"
+
+#, c-format
+msgid " --asdeps mark packages as non-explicitly installed\n"
+msgstr ""
+" --asdeps paketleri bağımlılık olarak kurulacak şekilde işaretle\n"
+
+#, c-format
+msgid " --asexplicit mark packages as explicitly installed\n"
+msgstr ""
+" --asexplicit paketleri doğrudan kurulmuş paket olarak işaretle\n"
+
+#, c-format
+msgid " -f, --force force install, overwrite conflicting files\n"
+msgstr ""
+" -f, --force kurulumu zorla, çakışan dosyaların üzerine yaz\n"
+
+#, c-format
+msgid " --asdeps install packages as non-explicitly installed\n"
+msgstr " --asdeps paket(ler)i bağımlılık olarak kur\n"
+
+#, c-format
+msgid " --asexplicit install packages as explicitly installed\n"
+msgstr ""
+" --asexplicit paket(ler)i doğrudan kurulmuş paket olarak kur\n"
+
+#, c-format
+msgid ""
+" --ignore <pkg> ignore a package upgrade (can be used more than "
+"once)\n"
+msgstr ""
+" --ignore <pkg> paket güncellemesini görmezden gel (birden çok paket "
+"için kullanılabilir)\n"
+
+#, c-format
+msgid ""
+" --ignoregroup <grp>\n"
+" ignore a group upgrade (can be used more than once)\n"
+msgstr ""
+" --ignoregroup <grp>\n"
+" güncelleme sırasında grubu görmezden gel (birden çok "
+"grup için kullanılabilir)\n"
+
+#, c-format
+msgid ""
+" -d, --nodeps skip dependency version checks (-dd to skip all "
+"checks)\n"
+msgstr ""
+" -d, --nodeps bağımlılk sürüm denetimlerini atla (-dd tüm "
+"denetimleri atlar)\n"
+
+#, c-format
+msgid ""
+" -k, --dbonly only modify database entries, not package files\n"
+msgstr " -k, --dbonly sadece veritabanı girdilerini değiştir\n"
+
+#, c-format
+msgid ""
+" --noprogressbar do not show a progress bar when downloading files\n"
+msgstr " --noprogressbar dosyaları indirirken durum çubuğu gösterme\n"
+
+#, c-format
+msgid ""
+" --noscriptlet do not execute the install scriptlet if one exists\n"
+msgstr " --noscriptlet kurulum betiği varsa çalıştırma\n"
+
+#, c-format
+msgid ""
+" --print print the targets instead of performing the "
+"operation\n"
+msgstr ""
+" --print işlemi gerçekleştirmek yerine hedefleri ekrana "
+"yazdır\n"
+
+#, c-format
+msgid ""
+" --print-format <string>\n"
+" specify how the targets should be printed\n"
+msgstr ""
+" --print-format <dizgi>\n"
+" çıktı biçiminin nasıl gösterileceğini belirle\n"
+
+#, c-format
+msgid " -b, --dbpath <path> set an alternate database location\n"
+msgstr " -b, --dbpath <yol> farklı bir veritabanı yolu belirle\n"
+
+#, c-format
+msgid " -r, --root <path> set an alternate installation root\n"
+msgstr " -r, --root <yol> farklı bir kurulum kök dizini ayarla\n"
+
+#, c-format
+msgid " -v, --verbose be verbose\n"
+msgstr " -v, --verbose ayrıntı göster\n"
+
+#, c-format
+msgid " --arch <arch> set an alternate architecture\n"
+msgstr " --arch <arch> alternatif bir mimari seç\n"
+
+#, c-format
+msgid " --cachedir <dir> set an alternate package cache location\n"
+msgstr " --cachedir <dir> farklı bir önbellek yolu ayarla\n"
+
+#, c-format
+msgid " --config <path> set an alternate configuration file\n"
+msgstr " --config <yol> farklı bir ayar dosyası seç\n"
+
+#, c-format
+msgid " --debug display debug messages\n"
+msgstr " --debug hata ayıklama çıktılarını göster\n"
+
+#, fuzzy, c-format
+msgid " --gpgdir <path> set an alternate home directory for GnuPG\n"
+msgstr " --logfile <yol> farklı bir kayıt dosyası seç\n"
+
+#, c-format
+msgid " --logfile <path> set an alternate log file\n"
+msgstr " --logfile <yol> farklı bir kayıt dosyası seç\n"
+
+#, c-format
+msgid " --noconfirm do not ask for any confirmation\n"
+msgstr " --noconfirm herhangi bir onay isteme\n"
+
+#, c-format
+msgid ""
+" This program may be freely redistributed under\n"
+" the terms of the GNU General Public License.\n"
+msgstr ""
+" Bu yazılım GNU Genel Kamu Lisansı hükümlerine\n"
+" uymak şartıyla özgürce dağıtılabilir.\n"
+
+#, c-format
+msgid "'%s' is not a valid debug level\n"
+msgstr "'%s' geçerli bir hata ayıklama seviyesi değil\n"
+
+#, c-format
+msgid "only one operation may be used at a time\n"
+msgstr "her seferinde yalnızca bir işlem yapılabilir\n"
+
+#, c-format
+msgid "invalid option\n"
+msgstr "hatalı seçenek\n"
+
+#, c-format
+msgid "buffer overflow detected in arg parsing\n"
+msgstr "veri işlenirken hafıza taşması meydana geldi\n"
+
+#, c-format
+msgid "failed to reopen stdin for reading: (%s)\n"
+msgstr "stdin okunmak için açılamadı: (%s)\n"
+
+#, c-format
+msgid "you cannot perform this operation unless you are root.\n"
+msgstr "yönetici yetkileri olmadan bu işlemi gerçekleştiremezsiniz.\n"
+
+#, c-format
+msgid "no operation specified (use -h for help)\n"
+msgstr "herhangi bir işlem belirlenmedi (yardım için -h kullanın)\n"
+
+#, c-format
+msgid "%s is owned by %s %s\n"
+msgstr "%s, %s %s tarafından sahiplenilmektedir\n"
+
+#, c-format
+msgid "no file was specified for --owns\n"
+msgstr "--owns parametresi için herhangi bir dosya belirtilmedi\n"
+
+#, c-format
+msgid "failed to find '%s' in PATH: %s\n"
+msgstr "'%s' PATH içinde bulunamadı: %s\n"
+
+#, c-format
+msgid "failed to read file '%s': %s\n"
+msgstr "'%s' adlı dosya okunamadı: %s\n"
+
+#, c-format
+msgid "cannot determine ownership of directory '%s'\n"
+msgstr "'%s' dizininin sahipliği belirlenemedi\n"
+
+#, c-format
+msgid "cannot determine real path for '%s': %s\n"
+msgstr "'%s' için gerçek yol belirlenemedi: %s\n"
+
+#, c-format
+msgid "path too long: %s%s\n"
+msgstr "dosya yolu çok uzun: %s%s\n"
+
+#, c-format
+msgid "No package owns %s\n"
+msgstr "%s hiçbir paket tarafından sahiplenilmiyor\n"
+
+#, c-format
+msgid "group \"%s\" was not found\n"
+msgstr "\"%s\" grubu bulunamadı\n"
+
+#, c-format
+msgid "%s: %d total file, "
+msgid_plural "%s: %d total files, "
+msgstr[0] "%s: %d toplam dosya, "
+
+#, c-format
+msgid "%d missing file\n"
+msgid_plural "%d missing files\n"
+msgstr[0] "%d kayıp dosya\n"
+
+#, c-format
+msgid "no usable package repositories configured.\n"
+msgstr "kullanılabilir bir paket deposu tanımlanmamış.\n"
+
+#, c-format
+msgid "package \"%s\" not found\n"
+msgstr "\"%s\" paketi bulunamadı\n"
+
+#, c-format
+msgid "failed to prepare transaction (%s)\n"
+msgstr "işlem hazırlığı başarısız oldu (%s)\n"
+
+#, c-format
+msgid ":: package %s does not have a valid architecture\n"
+msgstr ":: '%s' paketi geçerli bir mimariye sahip değil.\n"
+
+#, c-format
+msgid ":: %s: requires %s\n"
+msgstr ":: %s: %s paketini gerektiriyor\n"
+
+#, c-format
+msgid "%s is designated as a HoldPkg.\n"
+msgstr "%s paketi HoldPkg olarak işaretlenmiş durumda.\n"
+
+#, c-format
+msgid "HoldPkg was found in target list. Do you want to continue?"
+msgstr "Hedef listesinde HoldPkg bulundu. Devam etmek istiyor musunuz?"
+
+#, c-format
+msgid " there is nothing to do\n"
+msgstr " yapılacak bir şey yok\n"
+
+#, c-format
+msgid "Do you want to remove these packages?"
+msgstr "Bu paketleri kaldırmak istiyor musunuz?"
+
+#, c-format
+msgid "failed to commit transaction (%s)\n"
+msgstr "işlem gerçekleştirilemedi (%s)\n"
+
+#, c-format
+msgid "could not access database directory\n"
+msgstr "veritabanı dizinine erişilemedi\n"
+
+#, c-format
+msgid "could not remove %s\n"
+msgstr "%s silinemedi\n"
+
+#, c-format
+msgid "Do you want to remove %s?"
+msgstr "%s paketini kaldırmak istiyor musunuz?"
+
+#, c-format
+msgid "Database directory: %s\n"
+msgstr "Veritabanı dizini: %s\n"
+
+#, c-format
+msgid "Do you want to remove unused repositories?"
+msgstr "Kullanılmayan depoları kaldırmak istiyor musunuz?"
+
+#, c-format
+msgid "Database directory cleaned up\n"
+msgstr "Veritabanı dizini temizlendi\n"
+
+#, c-format
+msgid "Cache directory: %s\n"
+msgstr "Önbellek dizini: %s\n"
+
+#, c-format
+msgid "Packages to keep:\n"
+msgstr "Tutulacak paketler:\n"
+
+#, c-format
+msgid " All locally installed packages\n"
+msgstr " Yerelde kurulu tüm paketler\n"
+
+#, c-format
+msgid " All current sync database packages\n"
+msgstr " Mevcut tüm senkronize paketler\n"
+
+#, c-format
+msgid "Do you want to remove all other packages from cache?"
+msgstr "Önbellekteki tüm paket dosyalarının silinmesini istiyor musunuz?"
+
+#, c-format
+msgid "removing old packages from cache...\n"
+msgstr "önbellekteki eski paketler kaldırılıyor...\n"
+
+#, c-format
+msgid "Do you want to remove ALL files from cache?"
+msgstr "Önbellekteki TÜM dosyaları kaldırmak istiyor musunuz?"
+
+#, c-format
+msgid "removing all files from cache...\n"
+msgstr "önbellekteki tüm dosyalar kaldırılıyor...\n"
+
+#, c-format
+msgid "could not access cache directory %s\n"
+msgstr "%s önbellek dizinine ulaşılamadı\n"
+
+#, c-format
+msgid "File %s does not seem to be a valid package, remove it?"
+msgstr "%s dosyası geçerli bir paket değil, kaldırmak ister misiniz?"
+
+#, c-format
+msgid "failed to update %s (%s)\n"
+msgstr "%s (%s) güncellenemedi\n"
+
+#, c-format
+msgid " %s is up to date\n"
+msgstr " %s deposu güncel\n"
+
+#, c-format
+msgid "failed to synchronize any databases\n"
+msgstr "veritabanı senkronizasyonu başarısız\n"
+
+#, c-format
+msgid "installed"
+msgstr "kurulu"
+
+#, c-format
+msgid "repository '%s' does not exist\n"
+msgstr "'%s' deposu mevcut değil\n"
+
+#, c-format
+msgid "package '%s' was not found in repository '%s'\n"
+msgstr "'%s' paketi '%s' deposunda bulunamadı\n"
+
+#, c-format
+msgid "package '%s' was not found\n"
+msgstr "'%s' paketi bulunamadı\n"
+
+#, c-format
+msgid "repository \"%s\" was not found.\n"
+msgstr "\"%s\" deposu bulunamadı.\n"
+
+#, c-format
+msgid "skipping target: %s\n"
+msgstr "hedef atlanıyor: %s\n"
+
+#, c-format
+msgid "target not found: %s\n"
+msgstr "hedef bulunamadı: %s\n"
+
+#, c-format
+msgid ":: There are %d members in group %s:\n"
+msgstr ":: %d adet üye %s grubunda yer alıyor:\n"
+
+#, c-format
+msgid "database not found: %s\n"
+msgstr "veritabanı bulunamadı: %s\n"
+
+#, c-format
+msgid ":: Starting full system upgrade...\n"
+msgstr ":: Sistem güncellemesi başlatılıyor...\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict\n"
+msgstr ":: %s ve %s çakışıyor\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s)\n"
+msgstr ":: %s ve %s çakışıyor(%s)\n"
+
+#, c-format
+msgid "Proceed with download?"
+msgstr "İndirme işlemine onay veriyor musunuz?"
+
+#, c-format
+msgid "Proceed with installation?"
+msgstr "Kuruluma onay veriyor musunuz?"
+
+#, c-format
+msgid "%s exists in both '%s' and '%s'\n"
+msgstr "%s, hem '%s' hem de '%s' içerisinde yer alıyor\n"
+
+#, c-format
+msgid "%s: %s exists in filesystem\n"
+msgstr "%s: %s dosya sisteminde mevcut\n"
+
+#, c-format
+msgid "%s is invalid or corrupted\n"
+msgstr "%s geçersiz veya bozuk\n"
+
+#, c-format
+msgid "Errors occurred, no packages were upgraded.\n"
+msgstr "Hata oluştu, hiçbir paket güncellenmedi.\n"
+
+#, c-format
+msgid ":: Synchronizing package databases...\n"
+msgstr ":: Paket veritabanları senkronize ediliyor...\n"
+
+#, c-format
+msgid ":: The following packages should be upgraded first :\n"
+msgstr ":: Öncelikle şu paketler güncellenmelidir :\n"
+
+#, c-format
+msgid ""
+":: Do you want to cancel the current operation\n"
+":: and upgrade these packages now?"
+msgstr ""
+":: Yürütülen işlemi şimdi durdurup\n"
+":: yeni sürümün yüklenmesini ister misiniz?"
+
+#, c-format
+msgid "failed to init transaction (%s)\n"
+msgstr "işlem (%s) başlatılamadı\n"
+
+#, c-format
+msgid ""
+" if you're sure a package manager is not already\n"
+" running, you can remove %s\n"
+msgstr ""
+" eğer paket yöneticisinin çalışmadığından eminseniz\n"
+" %s dosyasını silebilirsiniz.\n"
+
+#, c-format
+msgid " try running pacman-db-upgrade\n"
+msgstr " pacman-db-upgrade çalıştırmayı deneyin\n"
+
+#, c-format
+msgid "failed to release transaction (%s)\n"
+msgstr "işlem gerçekleştirilemedi (%s)\n"
+
+#, c-format
+msgid "None"
+msgstr "Hiçbiri"
+
+#, c-format
+msgid "insufficient columns available for table display\n"
+msgstr ""
+
+#, c-format
+msgid "Name"
+msgstr ""
+
+#, c-format
+msgid "Old Version"
+msgstr ""
+
+#, c-format
+msgid "New Version"
+msgstr ""
+
+#, c-format
+msgid "Size"
+msgstr ""
+
+#, c-format
+msgid "Targets (%d):"
+msgstr "Hedefler (%d):"
+
+#, c-format
+msgid "Remove (%d):"
+msgstr "Kaldır (%d):"
+
+#, fuzzy, c-format
+msgid "Total Download Size: %.2f %s\n"
+msgstr "Toplam İndirme Boyutu: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Installed Size: %.2f %s\n"
+msgstr "Toplam Kurulacak Boyut: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Net Upgrade Size: %.2f %s\n"
+msgstr "Toplam İndirme Boyutu: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Removed Size: %.2f %s\n"
+msgstr "Toplam Kaldırılacak Boyut: %.2f MB\n"
+
+#, c-format
+msgid "New optional dependencies for %s\n"
+msgstr "%s için yeni opsiyonel bağımlılıklar\n"
+
+#, c-format
+msgid "Optional dependencies for %s\n"
+msgstr "%s için opsiyonel bağımlılık(lar)\n"
+
+#, c-format
+msgid "Repository %s\n"
+msgstr "Depo %s\n"
+
+#, c-format
+msgid "Invalid value: %d is not between %d and %d\n"
+msgstr "Geçersiz değer: %d %d ve %d arasında değil\n"
+
+#, c-format
+msgid "Invalid number: %s\n"
+msgstr "Geçersiz sayı: %s\n"
+
+#, c-format
+msgid "Enter a selection (default=all)"
+msgstr "Bir seçim birin (öntanımlı=all)"
+
+#, c-format
+msgid "Enter a number (default=%d)"
+msgstr "Bir sayı girin (default=%d)"
+
+#, c-format
+msgid "[Y/n]"
+msgstr "[E/h]"
+
+#, c-format
+msgid "[y/N]"
+msgstr "[e/H]"
+
+#, c-format
+msgid "Y"
+msgstr "E"
+
+#, c-format
+msgid "YES"
+msgstr "EVET"
+
+#, c-format
+msgid "N"
+msgstr "H"
+
+#, c-format
+msgid "NO"
+msgstr "HAYIR"
+
+#, c-format
+msgid "failed to allocate string\n"
+msgstr "dizgi tahsis edilemedi\n"
+
+#, c-format
+msgid "error: %s"
+msgstr "hata: %s"
+
+#, c-format
+msgid "warning: %s"
+msgstr "uyarı: %s"
+
+#, c-format
+msgid "error: "
+msgstr "hata: "
+
+#, c-format
+msgid "warning: "
+msgstr "uyarı: "
+
diff --git a/src/pacman/po/uk.po b/src/pacman/po/uk.po
new file mode 100644
index 00000000..20b5e880
--- /dev/null
+++ b/src/pacman/po/uk.po
@@ -0,0 +1,1127 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Pacman Development Team <pacman-dev@archlinux.org>
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Arch Linux Pacman package manager\n"
+"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
+"POT-Creation-Date: 2011-06-23 21:59-0500\n"
+"PO-Revision-Date: 2011-03-28 02:39+0000\n"
+"Last-Translator: toofishes <dpmcgee@gmail.com>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: uk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
+
+#, c-format
+msgid "checking dependencies...\n"
+msgstr "перевірка залежностей...\n"
+
+#, c-format
+msgid "checking for file conflicts...\n"
+msgstr "перевірка на наявність конфліктів між файлами...\n"
+
+#, c-format
+msgid "resolving dependencies...\n"
+msgstr "розв'язання залежностей...\n"
+
+#, c-format
+msgid "looking for inter-conflicts...\n"
+msgstr "пошук конфліктів між пакунками...\n"
+
+#, c-format
+msgid "installing %s...\n"
+msgstr "встановлення %s...\n"
+
+#, c-format
+msgid "removing %s...\n"
+msgstr "вилучення %s...\n"
+
+#, c-format
+msgid "upgrading %s...\n"
+msgstr "оновлення %s...\n"
+
+#, c-format
+msgid "checking package integrity...\n"
+msgstr "перевірка цілісності пакунків...\n"
+
+#, c-format
+msgid "checking delta integrity...\n"
+msgstr "перевірка цілісності дельта-патчу...\n"
+
+#, c-format
+msgid "applying deltas...\n"
+msgstr "накладання дельта-патчів...\n"
+
+#, c-format
+msgid "generating %s with %s... "
+msgstr "генерування %s з %s... "
+
+#, c-format
+msgid "success!\n"
+msgstr "успішно!\n"
+
+#, c-format
+msgid "failed.\n"
+msgstr "невдало.\n"
+
+#, c-format
+msgid ":: Retrieving packages from %s...\n"
+msgstr ":: Завантаження пакунків з %s...\n"
+
+#, c-format
+msgid "checking available disk space...\n"
+msgstr ""
+
+#, c-format
+msgid ":: %s is in IgnorePkg/IgnoreGroup. Install anyway?"
+msgstr ":: %s є в IgnorePkg/IgnoreGroup. Встановити попри все?"
+
+#, c-format
+msgid ":: Replace %s with %s/%s?"
+msgstr ":: Замінити %s на %s/%s?"
+
+#, c-format
+msgid ":: %s and %s are in conflict. Remove %s?"
+msgstr ":: %s і %s конфліктують. Вилучити %s?"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s). Remove %s?"
+msgstr ":: %s і %s конфліктують (%s). Вилучити %s?"
+
+#, c-format
+msgid ""
+":: The following package cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgid_plural ""
+":: The following packages cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#, c-format
+msgid "Do you want to skip the above package for this upgrade?"
+msgid_plural "Do you want to skip the above packages for this upgrade?"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#, c-format
+msgid ":: There are %d providers available for %s:\n"
+msgstr ""
+
+#, c-format
+msgid ":: %s-%s: local version is newer. Upgrade anyway?"
+msgstr ":: %s-%s: локальна версія новіша. Оновити попри все?"
+
+#, c-format
+msgid ":: File %s is corrupted. Do you want to delete it?"
+msgstr ":: Файл %s пошкоджений. Бажаєте його вилучити?"
+
+#, c-format
+msgid "installing"
+msgstr "встановлення"
+
+#, c-format
+msgid "upgrading"
+msgstr "оновлення"
+
+#, c-format
+msgid "removing"
+msgstr "вилучення"
+
+#, c-format
+msgid "checking for file conflicts"
+msgstr "перевірка файлових конфліктів"
+
+#, c-format
+msgid "checking available disk space"
+msgstr ""
+
+#, c-format
+msgid "checking package integrity"
+msgstr ""
+
+#, c-format
+msgid "downloading %s...\n"
+msgstr "завантаження %s...\n"
+
+#, c-format
+msgid "malloc failure: could not allocate %zd bytes\n"
+msgstr "помилка malloc: неможливо розмістити %zd байтів\n"
+
+#, c-format
+msgid "could not get current working directory\n"
+msgstr ""
+
+#, c-format
+msgid "could not chdir to download directory %s\n"
+msgstr "неможливо перейти в каталог завантаження %s\n"
+
+#, c-format
+msgid "running XferCommand: fork failed!\n"
+msgstr "виконання XferCommand: не вдалося зробити fork!\n"
+
+#, c-format
+msgid "could not change directory to %s (%s)\n"
+msgstr ""
+
+#, c-format
+msgid "invalid value for 'CleanMethod' : '%s'\n"
+msgstr "невірне значення для 'CleanMethod' : '%s'\n"
+
+#, c-format
+msgid ""
+"config file %s, line %d: directive '%s' in section '%s' not recognized.\n"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "config file %s, line %d: directive '%s' has invalid value '%s'\n"
+msgstr ""
+"файл налаштувань %s, рядок %d: Всі директиви повинні належати секції.\n"
+
+#, c-format
+msgid ""
+"The mirror '%s' contains the $arch variable, but no Architecture is "
+"defined.\n"
+msgstr "Дзеркало '%s' містить змінну $arch, але архітектуру не визначено\n"
+
+#, c-format
+msgid "could not add server URL to database '%s': %s (%s)\n"
+msgstr "неможливо додати адресу сервера до бази даних '%s': %s (%s)\n"
+
+#, c-format
+msgid "failed to initialize alpm library (%s)\n"
+msgstr "не вдалося ініціалізувати бібліотеку alpm (%s)\n"
+
+#, c-format
+msgid "problem setting logfile '%s' (%s)\n"
+msgstr "проблема встановлення '%s' лог-файлом (%s)\n"
+
+#, fuzzy, c-format
+msgid "problem setting gpgdir '%s' (%s)\n"
+msgstr "проблема встановлення '%s' кореневим каталогом (%s)\n"
+
+#, c-format
+msgid "could not register '%s' database (%s)\n"
+msgstr "неможливо зареєструвати базу даних '%s' (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not set verify option for database '%s' (%s)\n"
+msgstr "неможливо додати адресу сервера до бази даних '%s': %s (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not add mirror '%s' to database '%s' (%s)\n"
+msgstr "неможливо додати адресу сервера до бази даних '%s': %s (%s)\n"
+
+#, c-format
+msgid "config parsing exceeded max recursion depth of %d.\n"
+msgstr ""
+
+#, c-format
+msgid "config file %s could not be read.\n"
+msgstr "неможливо прочитати файл налаштувань %s.\n"
+
+#, c-format
+msgid "config file %s, line %d: bad section name.\n"
+msgstr "файл налаштувань %s, рядок %d: погана назва секції.\n"
+
+#, c-format
+msgid "config file %s, line %d: syntax error in config file- missing key.\n"
+msgstr ""
+"файл налаштувань %s, рядок %d: синтаксична помилка у файлі налаштувань - "
+"відсутній ключ.\n"
+
+#, c-format
+msgid "config file %s, line %d: All directives must belong to a section.\n"
+msgstr ""
+"файл налаштувань %s, рядок %d: Всі директиви повинні належати секції.\n"
+
+#, c-format
+msgid "config file %s, line %d: directive '%s' needs a value\n"
+msgstr ""
+
+#, c-format
+msgid "no targets specified (use -h for help)\n"
+msgstr "не вказані цілі (додайте -h для довідки)\n"
+
+#, c-format
+msgid "no install reason specified (use -h for help)\n"
+msgstr ""
+
+#, c-format
+msgid "could not set install reason for package %s (%s)\n"
+msgstr ""
+
+#, c-format
+msgid "%s: install reason has been set to 'installed as dependency'\n"
+msgstr ""
+
+#, c-format
+msgid "%s: install reason has been set to 'explicitly installed'\n"
+msgstr ""
+
+#, c-format
+msgid "Explicitly installed"
+msgstr "Явно встановлений"
+
+#, c-format
+msgid "Installed as a dependency for another package"
+msgstr "Встановлений як залежність до іншого пакунку"
+
+#, c-format
+msgid "Unknown"
+msgstr "Невідомо"
+
+#, c-format
+msgid "Repository :"
+msgstr "Репозиторій :"
+
+#, c-format
+msgid "Name :"
+msgstr "Назва :"
+
+#, c-format
+msgid "Version :"
+msgstr "Версія :"
+
+#, c-format
+msgid "URL :"
+msgstr "Посилання :"
+
+#, c-format
+msgid "Licenses :"
+msgstr "Ліцензії :"
+
+#, c-format
+msgid "Groups :"
+msgstr "Групи :"
+
+#, c-format
+msgid "Provides :"
+msgstr "Забезпечує :"
+
+#, c-format
+msgid "Depends On :"
+msgstr "Залежить від :"
+
+#, c-format
+msgid "Optional Deps :"
+msgstr "Необов'язкові залежності:"
+
+#, c-format
+msgid "Required By :"
+msgstr "Потрібен для :"
+
+#, c-format
+msgid "Conflicts With :"
+msgstr "Конфліктує з :"
+
+#, c-format
+msgid "Replaces :"
+msgstr "Замінює :"
+
+#, fuzzy, c-format
+msgid "Download Size : %6.2f %s\n"
+msgstr "Розмір завантаження : %6.2f К\n"
+
+#, fuzzy, c-format
+msgid "Compressed Size: %6.2f %s\n"
+msgstr "Стиснений розмір : %6.2f К\n"
+
+#, fuzzy, c-format
+msgid "Installed Size : %6.2f %s\n"
+msgstr "Встановлений розмір : %6.2f К\n"
+
+#, c-format
+msgid "Packager :"
+msgstr "Пакувальник :"
+
+#, c-format
+msgid "Architecture :"
+msgstr "Архітектура :"
+
+#, c-format
+msgid "Build Date :"
+msgstr "Дата збирання :"
+
+#, c-format
+msgid "Install Date :"
+msgstr "Дата встановлення :"
+
+#, c-format
+msgid "Install Reason :"
+msgstr "Причина встановлення :"
+
+#, c-format
+msgid "Install Script :"
+msgstr "Скрипт встановлення :"
+
+#, c-format
+msgid "Yes"
+msgstr "Так"
+
+#, c-format
+msgid "No"
+msgstr "Ні"
+
+#, c-format
+msgid "MD5 Sum :"
+msgstr "Сума MD5 :"
+
+#, c-format
+msgid "Description :"
+msgstr "Опис :"
+
+#, c-format
+msgid "could not calculate checksums for %s\n"
+msgstr "неможливо підрахувати контрольні суми для %s\n"
+
+#, c-format
+msgid "Backup Files:\n"
+msgstr "Файли резервної копії:\n"
+
+#, c-format
+msgid "(none)\n"
+msgstr "(немає)\n"
+
+#, c-format
+msgid "no changelog available for '%s'.\n"
+msgstr "немає списку змін для '%s'.\n"
+
+#, c-format
+msgid "options"
+msgstr "опції"
+
+#, c-format
+msgid "file(s)"
+msgstr "файл(и)"
+
+#, c-format
+msgid "package(s)"
+msgstr "пакунки"
+
+#, c-format
+msgid "usage"
+msgstr "використання"
+
+#, c-format
+msgid "operation"
+msgstr "операція"
+
+#, c-format
+msgid "operations:\n"
+msgstr "операції:\n"
+
+#, c-format
+msgid ""
+"\n"
+"use '%s {-h --help}' with an operation for available options\n"
+msgstr ""
+"\n"
+"використайте '%s {-h --help}' з операцією, щоб взнати доступні опції\n"
+
+#, c-format
+msgid ""
+" -c, --cascade remove packages and all packages that depend on them\n"
+msgstr ""
+" -c, --cascade вилучити пакунки і всі пакунки, які залежать від них\n"
+
+#, c-format
+msgid " -n, --nosave remove configuration files\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -s, --recursive remove unnecessary dependencies\n"
+" (-ss includes explicitly installed dependencies)\n"
+msgstr ""
+
+#, c-format
+msgid " -u, --unneeded remove unneeded packages\n"
+msgstr ""
+
+#, c-format
+msgid " -c, --changelog view the changelog of a package\n"
+msgstr " -c, --changelog показати список змін пакунка\n"
+
+#, c-format
+msgid ""
+" -d, --deps list packages installed as dependencies [filter]\n"
+msgstr ""
+" -d, --deps показати список пакунків, встановлених як залежності "
+"[фільтр]\n"
+
+#, c-format
+msgid " -e, --explicit list packages explicitly installed [filter]\n"
+msgstr ""
+" -e, --explicit показати список явно встановлених пакунків [фільтр]\n"
+
+#, c-format
+msgid " -g, --groups view all members of a package group\n"
+msgstr " -g, --groups показати всіх учасників групи пакунків\n"
+
+#, c-format
+msgid ""
+" -i, --info view package information (-ii for backup files)\n"
+msgstr ""
+" -i, --info показати інформацію про пакунок (-ii для резервних "
+"файлів)\n"
+
+#, c-format
+msgid ""
+" -k, --check check that the files owned by the package(s) are "
+"present\n"
+msgstr ""
+" -k, --check перевірити що файли, які є власністю пакунків, "
+"присутні\n"
+
+#, c-format
+msgid " -l, --list list the contents of the queried package\n"
+msgstr " -l, --list показати вміст пакунка\n"
+
+#, c-format
+msgid ""
+" -m, --foreign list installed packages not found in sync db(s) "
+"[filter]\n"
+msgstr ""
+" -m, --foreign показати встановлені пакунки, що не знайдені в "
+"активних репозиторіях [фільтр]\n"
+
+#, c-format
+msgid " -o, --owns <file> query the package that owns <file>\n"
+msgstr " -o, --owns <file> показати пакунок, який володіє файлом <file>\n"
+
+#, c-format
+msgid " -p, --file <package> query a package file instead of the database\n"
+msgstr ""
+" -p, --file <package> використовувати файл пакунка замість бази даних\n"
+
+#, c-format
+msgid " -q, --quiet show less information for query and search\n"
+msgstr ""
+" -q, --quiet показувати менше інформації в результаті запиту чи "
+"пошуку\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search locally-installed packages for matching "
+"strings\n"
+msgstr ""
+" -s, --search <regex> шукати локально встановлені пакунки, які відповідають "
+"рядку\n"
+
+#, c-format
+msgid ""
+" -t, --unrequired list packages not required by any package [filter]\n"
+msgstr ""
+" -t, --unrequired показати пакунки, яких не потребує жоден інший "
+"пакунок [фільтр]\n"
+
+#, c-format
+msgid " -u, --upgrades list outdated packages [filter]\n"
+msgstr " -u, --upgrades показати список застарілих пакунків [фільтр]\n"
+
+#, c-format
+msgid ""
+" -c, --clean remove old packages from cache directory (-cc for "
+"all)\n"
+msgstr " -c, --clean вилучити старі пакунки з кешу (-cc для усіх)\n"
+
+#, c-format
+msgid " -i, --info view package information\n"
+msgstr " -i, --info показати інформацію про пакунок\n"
+
+#, c-format
+msgid " -l, --list <repo> view a list of packages in a repo\n"
+msgstr " -l, --list <repo> показати список пакунків у репозиторії\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search remote repositories for matching strings\n"
+msgstr " -s, --search <regex> шукати задані рядки у віддалених репозиторіях\n"
+
+#, c-format
+msgid ""
+" -u, --sysupgrade upgrade installed packages (-uu allows downgrade)\n"
+msgstr ""
+" -u, --sysupgrade оновити встановлені пакунки (-uu дозволяє пониження "
+"версії)\n"
+
+#, c-format
+msgid ""
+" -w, --downloadonly download packages but do not install/upgrade "
+"anything\n"
+msgstr ""
+" -w, --downloadonly завантажити пакунки, але нічого не встановлювати чи "
+"оновлювати\n"
+
+#, c-format
+msgid ""
+" -y, --refresh download fresh package databases from the server\n"
+msgstr ""
+" -y, --refresh завантажити свіжі бази даних пакунків з сервера\n"
+
+#, c-format
+msgid " --needed don't reinstall up to date packages\n"
+msgstr ""
+" --needed не перевстановлювати пакунки, які не потребують "
+"оновлення\n"
+
+#, c-format
+msgid " --asdeps mark packages as non-explicitly installed\n"
+msgstr " --asdeps позначити пакунки як неявно встановлені\n"
+
+#, c-format
+msgid " --asexplicit mark packages as explicitly installed\n"
+msgstr " --asexplicit позначити пакунки як явно встановлені\n"
+
+#, c-format
+msgid " -f, --force force install, overwrite conflicting files\n"
+msgstr ""
+" -f, --force примусово встановити, перезаписувати конфліктуючі "
+"файли\n"
+
+#, c-format
+msgid " --asdeps install packages as non-explicitly installed\n"
+msgstr " --asdeps встановити пакунки як неявно встановлені\n"
+
+#, c-format
+msgid " --asexplicit install packages as explicitly installed\n"
+msgstr " --asexplicit встановити пакунки як явно встановлені\n"
+
+#, c-format
+msgid ""
+" --ignore <pkg> ignore a package upgrade (can be used more than "
+"once)\n"
+msgstr ""
+" --ignore <pkg> ігнорувати оновлення пакунка (можна використовувати "
+"неодноразово)\n"
+
+#, c-format
+msgid ""
+" --ignoregroup <grp>\n"
+" ignore a group upgrade (can be used more than once)\n"
+msgstr ""
+" --ignoregroup <grp>\n"
+" ігнорувати оновлення групи (можна використовувати "
+"неодноразово)\n"
+
+#, c-format
+msgid ""
+" -d, --nodeps skip dependency version checks (-dd to skip all "
+"checks)\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" -k, --dbonly only modify database entries, not package files\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" --noprogressbar do not show a progress bar when downloading files\n"
+msgstr ""
+" --noprogressbar не показувати лінію поступу під час завантаження "
+"файлів\n"
+
+#, c-format
+msgid ""
+" --noscriptlet do not execute the install scriptlet if one exists\n"
+msgstr " --noscriptlet не виконувати скрипт встановлення, якщо він є\n"
+
+#, c-format
+msgid ""
+" --print print the targets instead of performing the "
+"operation\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" --print-format <string>\n"
+" specify how the targets should be printed\n"
+msgstr ""
+" --print-format <string>\n"
+" вказати як виводити цілі\n"
+
+#, c-format
+msgid " -b, --dbpath <path> set an alternate database location\n"
+msgstr ""
+" -b, --dbpath <path> використовувати альтернативний шлях до бази даних\n"
+
+#, c-format
+msgid " -r, --root <path> set an alternate installation root\n"
+msgstr ""
+" -r, --root <path> використати альтернативний кореневий каталог "
+"встановлення\n"
+
+#, c-format
+msgid " -v, --verbose be verbose\n"
+msgstr " -v, --verbose показувати подробиці\n"
+
+#, c-format
+msgid " --arch <arch> set an alternate architecture\n"
+msgstr " --arch <arch> встановити альтернативну архітектуру\n"
+
+#, c-format
+msgid " --cachedir <dir> set an alternate package cache location\n"
+msgstr ""
+" --cachedir <dir> використовувати альтернативний шлях до кешу пакунків\n"
+
+#, c-format
+msgid " --config <path> set an alternate configuration file\n"
+msgstr ""
+" --config <path> використовувати альтернативний файл налаштувань\n"
+
+#, c-format
+msgid " --debug display debug messages\n"
+msgstr " --debug показувати відлагоджувальні повідомлення\n"
+
+#, fuzzy, c-format
+msgid " --gpgdir <path> set an alternate home directory for GnuPG\n"
+msgstr " --logfile <path> використовувати альтернативний лог-файл\n"
+
+#, c-format
+msgid " --logfile <path> set an alternate log file\n"
+msgstr " --logfile <path> використовувати альтернативний лог-файл\n"
+
+#, c-format
+msgid " --noconfirm do not ask for any confirmation\n"
+msgstr " --noconfirm не питати підтвердження\n"
+
+#, c-format
+msgid ""
+" This program may be freely redistributed under\n"
+" the terms of the GNU General Public License.\n"
+msgstr ""
+" This program may be freely redistributed under\n"
+" the terms of the GNU General Public License.\n"
+
+#, c-format
+msgid "'%s' is not a valid debug level\n"
+msgstr "рівень відлагодження '%s' невірний\n"
+
+#, c-format
+msgid "only one operation may be used at a time\n"
+msgstr "тільки одна операція може використовуватися одночасно\n"
+
+#, c-format
+msgid "invalid option\n"
+msgstr ""
+
+#, c-format
+msgid "buffer overflow detected in arg parsing\n"
+msgstr ""
+
+#, c-format
+msgid "failed to reopen stdin for reading: (%s)\n"
+msgstr ""
+
+#, c-format
+msgid "you cannot perform this operation unless you are root.\n"
+msgstr "ви можете виконати цю операцію тільки як root.\n"
+
+#, c-format
+msgid "no operation specified (use -h for help)\n"
+msgstr "не вказано операцію (використайте -h для довідки)\n"
+
+#, c-format
+msgid "%s is owned by %s %s\n"
+msgstr "%s є власністю %s %s\n"
+
+#, c-format
+msgid "no file was specified for --owns\n"
+msgstr "не було вказано файл для --owns\n"
+
+#, c-format
+msgid "failed to find '%s' in PATH: %s\n"
+msgstr "не вдалося знайти файл '%s' в PATH: %s\n"
+
+#, c-format
+msgid "failed to read file '%s': %s\n"
+msgstr "не вдалося прочитати файл '%s': %s\n"
+
+#, c-format
+msgid "cannot determine ownership of directory '%s'\n"
+msgstr ""
+
+#, c-format
+msgid "cannot determine real path for '%s': %s\n"
+msgstr "неможливо визначити справжній шлях до '%s': %s\n"
+
+#, c-format
+msgid "path too long: %s%s\n"
+msgstr ""
+
+#, c-format
+msgid "No package owns %s\n"
+msgstr "Жоден пакунок не є власником %s\n"
+
+#, c-format
+msgid "group \"%s\" was not found\n"
+msgstr "групу \"%s\" не знайдено\n"
+
+#, c-format
+msgid "%s: %d total file, "
+msgid_plural "%s: %d total files, "
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#, c-format
+msgid "%d missing file\n"
+msgid_plural "%d missing files\n"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#, c-format
+msgid "no usable package repositories configured.\n"
+msgstr "працюючі репозиторії не налаштовані.\n"
+
+#, c-format
+msgid "package \"%s\" not found\n"
+msgstr "пакунок \"%s\" не знайдено\n"
+
+#, c-format
+msgid "failed to prepare transaction (%s)\n"
+msgstr "не вдалося підготувати операцію (%s)\n"
+
+#, c-format
+msgid ":: package %s does not have a valid architecture\n"
+msgstr ":: пакунок %s має невірну архітектуру\n"
+
+#, c-format
+msgid ":: %s: requires %s\n"
+msgstr ":: %s: потребує %s\n"
+
+#, c-format
+msgid "%s is designated as a HoldPkg.\n"
+msgstr ":: %s позначений як HoldPkg.\n"
+
+#, c-format
+msgid "HoldPkg was found in target list. Do you want to continue?"
+msgstr "HoldPkg знайдено в списку пакунків. Бажаєте продовжити?"
+
+#, c-format
+msgid " there is nothing to do\n"
+msgstr " нема що робити\n"
+
+#, c-format
+msgid "Do you want to remove these packages?"
+msgstr "Ви хочете вилучити ці пакунки?"
+
+#, c-format
+msgid "failed to commit transaction (%s)\n"
+msgstr "не вдалося завершити транзакцію (%s)\n"
+
+#, c-format
+msgid "could not access database directory\n"
+msgstr "немає доступу до каталога бази даних\n"
+
+#, c-format
+msgid "could not remove %s\n"
+msgstr ""
+
+#, c-format
+msgid "Do you want to remove %s?"
+msgstr "Ви хочете вилучити %s?"
+
+#, c-format
+msgid "Database directory: %s\n"
+msgstr "Каталог бази даних: %s\n"
+
+#, c-format
+msgid "Do you want to remove unused repositories?"
+msgstr "Ви хочете вилучити репозиторії, які не використовуються?"
+
+#, c-format
+msgid "Database directory cleaned up\n"
+msgstr "Каталог бази даних очищено\n"
+
+#, c-format
+msgid "Cache directory: %s\n"
+msgstr "Каталог кешу: %s\n"
+
+#, c-format
+msgid "Packages to keep:\n"
+msgstr ""
+
+#, c-format
+msgid " All locally installed packages\n"
+msgstr ""
+
+#, c-format
+msgid " All current sync database packages\n"
+msgstr ""
+
+#, c-format
+msgid "Do you want to remove all other packages from cache?"
+msgstr ""
+
+#, c-format
+msgid "removing old packages from cache...\n"
+msgstr "вилучення старих пакунків з кешу...\n"
+
+#, c-format
+msgid "Do you want to remove ALL files from cache?"
+msgstr "Ви хочете вилучити ВСІ файли з кешу?"
+
+#, c-format
+msgid "removing all files from cache...\n"
+msgstr "вилучення всіх файлів з кешу...\n"
+
+#, c-format
+msgid "could not access cache directory %s\n"
+msgstr "немає доступу до каталогу кешу %s\n"
+
+#, c-format
+msgid "File %s does not seem to be a valid package, remove it?"
+msgstr "Файл %s не схожий на вірний пакунок, вилучити його?"
+
+#, c-format
+msgid "failed to update %s (%s)\n"
+msgstr "не вдалося оновити %s (%s)\n"
+
+#, c-format
+msgid " %s is up to date\n"
+msgstr " %s не потребує оновлення\n"
+
+#, c-format
+msgid "failed to synchronize any databases\n"
+msgstr "не вдалося синхронізувати жодну базу даних\n"
+
+#, c-format
+msgid "installed"
+msgstr "встановлено"
+
+#, c-format
+msgid "repository '%s' does not exist\n"
+msgstr "репозиторій '%s' не існує\n"
+
+#, c-format
+msgid "package '%s' was not found in repository '%s'\n"
+msgstr "пакунок '%s' не знайдено в репозиторії '%s'\n"
+
+#, c-format
+msgid "package '%s' was not found\n"
+msgstr "пакунок '%s' не знайдено\n"
+
+#, c-format
+msgid "repository \"%s\" was not found.\n"
+msgstr "репозиторій \"%s\" не знайдено.\n"
+
+#, c-format
+msgid "skipping target: %s\n"
+msgstr "пропуск пакунка: %s\n"
+
+#, c-format
+msgid "target not found: %s\n"
+msgstr ""
+
+#, c-format
+msgid ":: There are %d members in group %s:\n"
+msgstr ""
+
+#, c-format
+msgid "database not found: %s\n"
+msgstr ""
+
+#, c-format
+msgid ":: Starting full system upgrade...\n"
+msgstr ":: Починається оновлення системи...\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict\n"
+msgstr ":: %s і %s конфліктують\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s)\n"
+msgstr ":: %s і %s конфліктують (%s)\n"
+
+#, c-format
+msgid "Proceed with download?"
+msgstr "Продовжити завантаження?"
+
+#, c-format
+msgid "Proceed with installation?"
+msgstr "Продовжити встановлення?"
+
+#, c-format
+msgid "%s exists in both '%s' and '%s'\n"
+msgstr "%s існує і в '%s', і в '%s'\n"
+
+#, c-format
+msgid "%s: %s exists in filesystem\n"
+msgstr "%s: %s існує у файловій системі\n"
+
+#, c-format
+msgid "%s is invalid or corrupted\n"
+msgstr "%s невірний чи пошкоджений\n"
+
+#, c-format
+msgid "Errors occurred, no packages were upgraded.\n"
+msgstr "Виникли помилки, пакунки не були оновлені.\n"
+
+#, c-format
+msgid ":: Synchronizing package databases...\n"
+msgstr ":: Синхронізація бази даних пакунків...\n"
+
+#, c-format
+msgid ":: The following packages should be upgraded first :\n"
+msgstr ":: Спершу будуть оновлені такі пакунки: \n"
+
+#, c-format
+msgid ""
+":: Do you want to cancel the current operation\n"
+":: and upgrade these packages now?"
+msgstr ""
+":: Бажаєте скасувати операцію\n"
+":: та оновити ці пакунки зараз?"
+
+#, c-format
+msgid "failed to init transaction (%s)\n"
+msgstr "не вдалося розпочати транзакцію (%s)\n"
+
+#, c-format
+msgid ""
+" if you're sure a package manager is not already\n"
+" running, you can remove %s\n"
+msgstr ""
+" якщо ви впевнені, що менеджер пакунків не\n"
+" запущений, ви можете вилучити %s\n"
+
+#, c-format
+msgid " try running pacman-db-upgrade\n"
+msgstr ""
+
+#, c-format
+msgid "failed to release transaction (%s)\n"
+msgstr "не вдалося завершити транзакцію (%s)\n"
+
+#, c-format
+msgid "None"
+msgstr "Немає"
+
+#, c-format
+msgid "insufficient columns available for table display\n"
+msgstr ""
+
+#, c-format
+msgid "Name"
+msgstr ""
+
+#, c-format
+msgid "Old Version"
+msgstr ""
+
+#, c-format
+msgid "New Version"
+msgstr ""
+
+#, c-format
+msgid "Size"
+msgstr ""
+
+#, c-format
+msgid "Targets (%d):"
+msgstr "Пакунки (%d):"
+
+#, c-format
+msgid "Remove (%d):"
+msgstr "Вилучити (%d):"
+
+#, fuzzy, c-format
+msgid "Total Download Size: %.2f %s\n"
+msgstr "Загальний розмір завантаження: %.2f МБ\n"
+
+#, fuzzy, c-format
+msgid "Total Installed Size: %.2f %s\n"
+msgstr "Загальний розмір встановлення: %.2f МБ\n"
+
+#, fuzzy, c-format
+msgid "Net Upgrade Size: %.2f %s\n"
+msgstr "Загальний розмір завантаження: %.2f МБ\n"
+
+#, fuzzy, c-format
+msgid "Total Removed Size: %.2f %s\n"
+msgstr "Загальний розмір вилучення: %.2f МБ\n"
+
+#, c-format
+msgid "New optional dependencies for %s\n"
+msgstr "Нові необов'язкові залежності для %s\n"
+
+#, c-format
+msgid "Optional dependencies for %s\n"
+msgstr "Необов'язкові залежності для %s\n"
+
+#, c-format
+msgid "Repository %s\n"
+msgstr ""
+
+#, c-format
+msgid "Invalid value: %d is not between %d and %d\n"
+msgstr ""
+
+#, c-format
+msgid "Invalid number: %s\n"
+msgstr ""
+
+#, c-format
+msgid "Enter a selection (default=all)"
+msgstr ""
+
+#, c-format
+msgid "Enter a number (default=%d)"
+msgstr ""
+
+#, c-format
+msgid "[Y/n]"
+msgstr "[Y/n]"
+
+#, c-format
+msgid "[y/N]"
+msgstr "[y/N]"
+
+#, c-format
+msgid "Y"
+msgstr "Y"
+
+#, c-format
+msgid "YES"
+msgstr "ТАК"
+
+#, c-format
+msgid "N"
+msgstr "N"
+
+#, c-format
+msgid "NO"
+msgstr "НІ"
+
+#, c-format
+msgid "failed to allocate string\n"
+msgstr ""
+
+#, c-format
+msgid "error: %s"
+msgstr "помилка: %s"
+
+#, c-format
+msgid "warning: %s"
+msgstr "попередження: %s"
+
+#, c-format
+msgid "error: "
+msgstr "помилка: "
+
+#, c-format
+msgid "warning: "
+msgstr "попередження: "
+
diff --git a/src/pacman/po/zh_CN.po b/src/pacman/po/zh_CN.po
new file mode 100644
index 00000000..2e201643
--- /dev/null
+++ b/src/pacman/po/zh_CN.po
@@ -0,0 +1,1085 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Pacman Development Team <pacman-dev@archlinux.org>
+# This file is distributed under the same license as the PACKAGE package.
+#
+# <rainofchaos@gmail.com>, 2011
+# leonfeng <rainofchaos@gmail.com>, 2011
+# 甘 露 <rhythm.gan@gmail.com>, 2011
+msgid ""
+msgstr ""
+"Project-Id-Version: Arch Linux Pacman package manager\n"
+"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
+"POT-Creation-Date: 2011-06-23 21:59-0500\n"
+"PO-Revision-Date: 2011-06-04 02:50+0000\n"
+"Last-Translator: leonfeng <rainofchaos@gmail.com>\n"
+"Language-Team: Chinese (China) (http://www.transifex.net/projects/p/"
+"archlinux-pacman/team/zh_CN/)\n"
+"Language: zh_CN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0\n"
+
+#, c-format
+msgid "checking dependencies...\n"
+msgstr "正在检查依赖关系...\n"
+
+#, c-format
+msgid "checking for file conflicts...\n"
+msgstr "正在检查文件冲突...\n"
+
+#, c-format
+msgid "resolving dependencies...\n"
+msgstr "正在解决依赖关系...\n"
+
+#, c-format
+msgid "looking for inter-conflicts...\n"
+msgstr "正在查找内部冲突...\n"
+
+#, c-format
+msgid "installing %s...\n"
+msgstr "正在安装 %s...\n"
+
+#, c-format
+msgid "removing %s...\n"
+msgstr "正在删除 %s...\n"
+
+#, c-format
+msgid "upgrading %s...\n"
+msgstr "正在升级 %s...\n"
+
+#, c-format
+msgid "checking package integrity...\n"
+msgstr "正在检查软件包完整性...\n"
+
+#, c-format
+msgid "checking delta integrity...\n"
+msgstr "正在检查增量包完整性...\n"
+
+#, c-format
+msgid "applying deltas...\n"
+msgstr "正在应用增量包...\n"
+
+#, c-format
+msgid "generating %s with %s... "
+msgstr "正在生成 %s (使用 %s) ..."
+
+#, c-format
+msgid "success!\n"
+msgstr "成功完成!\n"
+
+#, c-format
+msgid "failed.\n"
+msgstr "失败。\n"
+
+#, c-format
+msgid ":: Retrieving packages from %s...\n"
+msgstr ":: 正在从 %s 软件库获取软件包...\n"
+
+#, c-format
+msgid "checking available disk space...\n"
+msgstr "正在检查可用磁盘空间...\n"
+
+#, c-format
+msgid ":: %s is in IgnorePkg/IgnoreGroup. Install anyway?"
+msgstr ""
+":: %s 位于 IgnorePkg/IgnoreGroup (忽略软件包/忽略软件包组) 中。确定要安装吗?"
+
+#, c-format
+msgid ":: Replace %s with %s/%s?"
+msgstr ":: 替换 %s 吗 (使用 %s/%s )?"
+
+#, c-format
+msgid ":: %s and %s are in conflict. Remove %s?"
+msgstr ":: %s 与 %s 有冲突。删除 %s 吗?"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s). Remove %s?"
+msgstr ":: %s 与 %s 有冲突 (%s)。删除 %s 吗?"
+
+#, c-format
+msgid ""
+":: The following package cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgid_plural ""
+":: The following packages cannot be upgraded due to unresolvable "
+"dependencies:\n"
+msgstr[0] "因为无法解决以来关系,以下软件包无法进行更新:\n"
+
+#, c-format
+msgid "Do you want to skip the above package for this upgrade?"
+msgid_plural "Do you want to skip the above packages for this upgrade?"
+msgstr[0] "您想在本次更新中跳过上述软件包吗?"
+
+#, c-format
+msgid ":: There are %d providers available for %s:\n"
+msgstr ":: 有 %d 个软件包均可提供 %s :\n"
+
+#, c-format
+msgid ":: %s-%s: local version is newer. Upgrade anyway?"
+msgstr ":: %s-%s:本地版本较新。确定要更新吗?"
+
+#, c-format
+msgid ":: File %s is corrupted. Do you want to delete it?"
+msgstr ":: 文件 %s 已损坏。你想要删除它吗?"
+
+#, c-format
+msgid "installing"
+msgstr "正在安装"
+
+#, c-format
+msgid "upgrading"
+msgstr "正在更新"
+
+#, c-format
+msgid "removing"
+msgstr "正在删除"
+
+#, c-format
+msgid "checking for file conflicts"
+msgstr "正在检查文件冲突"
+
+#, c-format
+msgid "checking available disk space"
+msgstr "正在检查可用硬盘空间"
+
+#, c-format
+msgid "checking package integrity"
+msgstr "正在检查软件包完整性"
+
+#, c-format
+msgid "downloading %s...\n"
+msgstr "正在下载 %s...\n"
+
+#, c-format
+msgid "malloc failure: could not allocate %zd bytes\n"
+msgstr "内存分配失败:无法分配 %zd \n"
+
+#, c-format
+msgid "could not get current working directory\n"
+msgstr "无法获取当前的工作目录\n"
+
+#, c-format
+msgid "could not chdir to download directory %s\n"
+msgstr "无法 chdir 到下载目录 %s\n"
+
+#, c-format
+msgid "running XferCommand: fork failed!\n"
+msgstr "正在运行 XferCommand:分支失败!\n"
+
+#, c-format
+msgid "could not change directory to %s (%s)\n"
+msgstr "无法改变目录到 %s (%s)\n"
+
+#, c-format
+msgid "invalid value for 'CleanMethod' : '%s'\n"
+msgstr "'CleanMethod' 设置的为无效值: '%s'\n"
+
+#, c-format
+msgid ""
+"config file %s, line %d: directive '%s' in section '%s' not recognized.\n"
+msgstr "配置文件 %s,第 %d 行:指令 '%s'(位于章节 '%s' 中) 无法识别。\n"
+
+#, fuzzy, c-format
+msgid "config file %s, line %d: directive '%s' has invalid value '%s'\n"
+msgstr "配置文件 %s,第 %d 行:指令 '%s' 需要赋值\n"
+
+#, c-format
+msgid ""
+"The mirror '%s' contains the $arch variable, but no Architecture is "
+"defined.\n"
+msgstr "镜像 '%s' 包含有 $arch 参数,但没有定义架构。\n"
+
+#, c-format
+msgid "could not add server URL to database '%s': %s (%s)\n"
+msgstr "无法添加服务器 URL 到数据库 '%s':%s (%s)\n"
+
+#, c-format
+msgid "failed to initialize alpm library (%s)\n"
+msgstr "初始化 alpm 库失败 (%s)\n"
+
+#, c-format
+msgid "problem setting logfile '%s' (%s)\n"
+msgstr "设定日志文件 '%s' (%s) 时出现问题\n"
+
+#, fuzzy, c-format
+msgid "problem setting gpgdir '%s' (%s)\n"
+msgstr "设置根目录'%s' (%s) 时出现问题 \n"
+
+#, c-format
+msgid "could not register '%s' database (%s)\n"
+msgstr "无法注册 '%s' 数据库 (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not set verify option for database '%s' (%s)\n"
+msgstr "无法添加服务器 URL 到数据库 '%s':%s (%s)\n"
+
+#, fuzzy, c-format
+msgid "could not add mirror '%s' to database '%s' (%s)\n"
+msgstr "无法添加服务器 URL 到数据库 '%s':%s (%s)\n"
+
+#, c-format
+msgid "config parsing exceeded max recursion depth of %d.\n"
+msgstr ""
+
+#, c-format
+msgid "config file %s could not be read.\n"
+msgstr "无法读取配置文件 %s。\n"
+
+#, c-format
+msgid "config file %s, line %d: bad section name.\n"
+msgstr "配置文件 %s,第 %d 行:坏的章节名字。\n"
+
+#, c-format
+msgid "config file %s, line %d: syntax error in config file- missing key.\n"
+msgstr "配置文件 %s,第 %d 行:配置文件中语法错误-缺少关键字。\n"
+
+#, c-format
+msgid "config file %s, line %d: All directives must belong to a section.\n"
+msgstr "配置文件 %s,第 %d 行:所有的命令必须属于同一章节。\n"
+
+#, c-format
+msgid "config file %s, line %d: directive '%s' needs a value\n"
+msgstr "配置文件 %s,第 %d 行:指令 '%s' 需要赋值\n"
+
+#, c-format
+msgid "no targets specified (use -h for help)\n"
+msgstr "没有指定目标 (使用 -h 获取帮助) \n"
+
+#, c-format
+msgid "no install reason specified (use -h for help)\n"
+msgstr "没有指定安装原因 ( 使用 -h 获取帮助)\n"
+
+#, c-format
+msgid "could not set install reason for package %s (%s)\n"
+msgstr "无法为软件包 %s 指定安装原因 (%s)\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'installed as dependency'\n"
+msgstr "%s:安装原因设定为“作为依赖关系安装”\n"
+
+#, c-format
+msgid "%s: install reason has been set to 'explicitly installed'\n"
+msgstr "%s:安装原因设定为“单独指定安装”\n"
+
+#, c-format
+msgid "Explicitly installed"
+msgstr "单独指定安装"
+
+#, c-format
+msgid "Installed as a dependency for another package"
+msgstr "作为其他软件包的依赖关系安装"
+
+#, c-format
+msgid "Unknown"
+msgstr "未知的"
+
+#, c-format
+msgid "Repository :"
+msgstr "软件库 :"
+
+#, c-format
+msgid "Name :"
+msgstr "名称   :"
+
+#, c-format
+msgid "Version :"
+msgstr "版本   :"
+
+#, c-format
+msgid "URL :"
+msgstr "URL地址 :"
+
+#, c-format
+msgid "Licenses :"
+msgstr "软件许可 :"
+
+#, c-format
+msgid "Groups :"
+msgstr "软件组  :"
+
+#, c-format
+msgid "Provides :"
+msgstr "提供   :"
+
+#, c-format
+msgid "Depends On :"
+msgstr "依赖于  :"
+
+#, c-format
+msgid "Optional Deps :"
+msgstr "可选依赖 :"
+
+#, c-format
+msgid "Required By :"
+msgstr "要求被  :"
+
+#, c-format
+msgid "Conflicts With :"
+msgstr "冲突与  :"
+
+#, c-format
+msgid "Replaces :"
+msgstr "取代   :"
+
+#, fuzzy, c-format
+msgid "Download Size : %6.2f %s\n"
+msgstr "需下载大小: %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Compressed Size: %6.2f %s\n"
+msgstr "压缩后大小: %6.2f K\n"
+
+#, fuzzy, c-format
+msgid "Installed Size : %6.2f %s\n"
+msgstr "安装后大小: %6.2f K\n"
+
+#, c-format
+msgid "Packager :"
+msgstr "打包者  :"
+
+#, c-format
+msgid "Architecture :"
+msgstr "架构   :"
+
+#, c-format
+msgid "Build Date :"
+msgstr "编译日期 :"
+
+#, c-format
+msgid "Install Date :"
+msgstr "安装日期 :"
+
+#, c-format
+msgid "Install Reason :"
+msgstr "安装原因 :"
+
+#, c-format
+msgid "Install Script :"
+msgstr "安装脚本 :"
+
+#, c-format
+msgid "Yes"
+msgstr "是"
+
+#, c-format
+msgid "No"
+msgstr "否"
+
+#, c-format
+msgid "MD5 Sum :"
+msgstr "MD5校验值:"
+
+#, c-format
+msgid "Description :"
+msgstr "描述   :"
+
+#, c-format
+msgid "could not calculate checksums for %s\n"
+msgstr "无法计算 %s 的完整性校验值\n"
+
+#, c-format
+msgid "Backup Files:\n"
+msgstr "备份文件:\n"
+
+#, c-format
+msgid "(none)\n"
+msgstr " (无) \n"
+
+#, c-format
+msgid "no changelog available for '%s'.\n"
+msgstr "'%s' 没有可用的更新日志。\n"
+
+#, c-format
+msgid "options"
+msgstr "选项"
+
+#, c-format
+msgid "file(s)"
+msgstr "文件"
+
+#, c-format
+msgid "package(s)"
+msgstr "软件包"
+
+#, c-format
+msgid "usage"
+msgstr "用法"
+
+#, c-format
+msgid "operation"
+msgstr "操作"
+
+#, c-format
+msgid "operations:\n"
+msgstr "操作:\n"
+
+#, c-format
+msgid ""
+"\n"
+"use '%s {-h --help}' with an operation for available options\n"
+msgstr ""
+"\n"
+"使用 '%s {-h --help}' 及某个操作以查看可用选项\n"
+
+#, c-format
+msgid ""
+" -c, --cascade remove packages and all packages that depend on them\n"
+msgstr " -c, --cascade 删除软件包及所有依赖于此的软件包\n"
+
+#, c-format
+msgid " -n, --nosave remove configuration files\n"
+msgstr " -n, --nosave 删除配置文件\n"
+
+#, c-format
+msgid ""
+" -s, --recursive remove unnecessary dependencies\n"
+" (-ss includes explicitly installed dependencies)\n"
+msgstr ""
+" -s, --recursive 删除不需要的依赖关系\n"
+" (-ss 包括单独指定安装的依赖关系)\n"
+
+#, c-format
+msgid " -u, --unneeded remove unneeded packages\n"
+msgstr " -u, --unneeded 删除不需要的软件包\n"
+
+#, c-format
+msgid " -c, --changelog view the changelog of a package\n"
+msgstr " -c, --changelog 查看某软件包的更新日志\n"
+
+#, c-format
+msgid ""
+" -d, --deps list packages installed as dependencies [filter]\n"
+msgstr " -d, --deps 列出所有作为依赖关系安装的软件包 [过滤器]\n"
+
+#, c-format
+msgid " -e, --explicit list packages explicitly installed [filter]\n"
+msgstr " -e, --explicit 列出所有单独指定安装的软件包 [过滤器]\n"
+
+#, c-format
+msgid " -g, --groups view all members of a package group\n"
+msgstr " -g, --groups 查看某软件包组所属的所有软件包\n"
+
+#, c-format
+msgid ""
+" -i, --info view package information (-ii for backup files)\n"
+msgstr " -i, --info 查看软件包信息 (-ii 查看备份文件) \n"
+
+#, c-format
+msgid ""
+" -k, --check check that the files owned by the package(s) are "
+"present\n"
+msgstr " -k, --check 检查该软件包拥有的文件是否存在\n"
+
+#, c-format
+msgid " -l, --list list the contents of the queried package\n"
+msgstr " -l, --list 列出被查询软件包的内容\n"
+
+#, c-format
+msgid ""
+" -m, --foreign list installed packages not found in sync db(s) "
+"[filter]\n"
+msgstr ""
+" -m, --foreign 列出没有在同步数据库时找到的已安装软件包 [过滤器]\n"
+
+#, c-format
+msgid " -o, --owns <file> query the package that owns <file>\n"
+msgstr " -o, --owns <文件> 查询哪个软件包拥有 <文件>\n"
+
+#, c-format
+msgid " -p, --file <package> query a package file instead of the database\n"
+msgstr " -p, --file <软件包> 从某个软件包而不是数据库查询\n"
+
+#, c-format
+msgid " -q, --quiet show less information for query and search\n"
+msgstr " -q, --quiet 在查询或搜索时显示较少的信息\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search locally-installed packages for matching "
+"strings\n"
+msgstr " -s, --search <regex> 搜寻符合指定字符串的已安装本地的软件包\n"
+
+#, c-format
+msgid ""
+" -t, --unrequired list packages not required by any package [filter]\n"
+msgstr " -t, --unrequired 列出所有不被其他软件包要求的软件包 [过滤器]\n"
+
+#, c-format
+msgid " -u, --upgrades list outdated packages [filter]\n"
+msgstr " -u, --upgrades 列出所有可升级的软件包 [过滤器]\n"
+
+#, c-format
+msgid ""
+" -c, --clean remove old packages from cache directory (-cc for "
+"all)\n"
+msgstr " -c, --clean 从缓存目录中删除旧软件包 (-cc 清除所有) \n"
+
+#, c-format
+msgid " -i, --info view package information\n"
+msgstr " -i, --info 查看软件包信息\n"
+
+#, c-format
+msgid " -l, --list <repo> view a list of packages in a repo\n"
+msgstr " -l, --list <软件库> 查看在该软件库中的软件包清单\n"
+
+#, c-format
+msgid ""
+" -s, --search <regex> search remote repositories for matching strings\n"
+msgstr " -s, --search <regex表达式> 按照指定字符串查询远端软件库\n"
+
+#, c-format
+msgid ""
+" -u, --sysupgrade upgrade installed packages (-uu allows downgrade)\n"
+msgstr " -u, --sysupgrade 升级所有已安装的软件包 (-uu 可启用降级)\n"
+
+#, c-format
+msgid ""
+" -w, --downloadonly download packages but do not install/upgrade "
+"anything\n"
+msgstr " -w, --downloadonly 下载但不安装/升级软件包\n"
+
+#, c-format
+msgid ""
+" -y, --refresh download fresh package databases from the server\n"
+msgstr " -y, --refresh 从服务器下载新的软件包数据库\n"
+
+#, c-format
+msgid " --needed don't reinstall up to date packages\n"
+msgstr " --needed 不重新安装已经为最新的软件包\n"
+
+#, c-format
+msgid " --asdeps mark packages as non-explicitly installed\n"
+msgstr " --asdeps 标记为非单独指定安装的软件包\n"
+
+#, c-format
+msgid " --asexplicit mark packages as explicitly installed\n"
+msgstr " --asexplicit 标记为明确指定安装的软件包\n"
+
+#, c-format
+msgid " -f, --force force install, overwrite conflicting files\n"
+msgstr " -f, -force 强制安装,覆盖存在冲突的文件\n"
+
+#, c-format
+msgid " --asdeps install packages as non-explicitly installed\n"
+msgstr " --asdeps 作为非单独指定安装的软件包安装\n"
+
+#, c-format
+msgid " --asexplicit install packages as explicitly installed\n"
+msgstr " --asexplicit 作为单独指定安装的软件包安装\n"
+
+#, c-format
+msgid ""
+" --ignore <pkg> ignore a package upgrade (can be used more than "
+"once)\n"
+msgstr " --ignore <软件包> 升级时忽略某个软件包 (可多次使用) \n"
+
+#, c-format
+msgid ""
+" --ignoregroup <grp>\n"
+" ignore a group upgrade (can be used more than once)\n"
+msgstr ""
+" --ignoregroup <软件包组>\n"
+" 升级时忽略某个软件包组 (可多次使用) \n"
+
+#, c-format
+msgid ""
+" -d, --nodeps skip dependency version checks (-dd to skip all "
+"checks)\n"
+msgstr "-d, --nodeps 跳过依赖关系的版本检查 (-dd 跳过所有检查)\n"
+
+#, c-format
+msgid ""
+" -k, --dbonly only modify database entries, not package files\n"
+msgstr " -k, --dbonly 仅修改数据库条目,而非软件包文件\n"
+
+#, c-format
+msgid ""
+" --noprogressbar do not show a progress bar when downloading files\n"
+msgstr " --noprogressbar 下载文件时不显示进度条\n"
+
+#, c-format
+msgid ""
+" --noscriptlet do not execute the install scriptlet if one exists\n"
+msgstr " --noscriptlet 不执行安装小脚本\n"
+
+#, c-format
+msgid ""
+" --print print the targets instead of performing the "
+"operation\n"
+msgstr " --print 打印本目标而不是执行本操作\n"
+
+#, c-format
+msgid ""
+" --print-format <string>\n"
+" specify how the targets should be printed\n"
+msgstr ""
+" --print-format <字符串>\n"
+" 指定如何打印目标\n"
+
+#, c-format
+msgid " -b, --dbpath <path> set an alternate database location\n"
+msgstr " -b, --dbpath <路径> 指定另外的数据库位置\n"
+
+#, c-format
+msgid " -r, --root <path> set an alternate installation root\n"
+msgstr " -r, --root <路径> 指定另外的安装根目录\n"
+
+#, c-format
+msgid " -v, --verbose be verbose\n"
+msgstr " -v, --verbose 显示详细信息\n"
+
+#, c-format
+msgid " --arch <arch> set an alternate architecture\n"
+msgstr " --arch <架构> 设定另外的架构\n"
+
+#, c-format
+msgid " --cachedir <dir> set an alternate package cache location\n"
+msgstr " --cachedir <目录> 指定另外的软件包缓存位置\n"
+
+#, c-format
+msgid " --config <path> set an alternate configuration file\n"
+msgstr " --config <路径> 指定另外的配置文件\n"
+
+#, c-format
+msgid " --debug display debug messages\n"
+msgstr " -- debug 显示除错信息\n"
+
+#, fuzzy, c-format
+msgid " --gpgdir <path> set an alternate home directory for GnuPG\n"
+msgstr " --logfile <路径> 指定另外的日志文件\n"
+
+#, c-format
+msgid " --logfile <path> set an alternate log file\n"
+msgstr " --logfile <路径> 指定另外的日志文件\n"
+
+#, c-format
+msgid " --noconfirm do not ask for any confirmation\n"
+msgstr " --noconfirm 不询问确认\n"
+
+#, c-format
+msgid ""
+" This program may be freely redistributed under\n"
+" the terms of the GNU General Public License.\n"
+msgstr ""
+" 本程序可以在GNU一般公众许可条款下\n"
+" 自由分发\n"
+
+#, c-format
+msgid "'%s' is not a valid debug level\n"
+msgstr "'%s' 不是有效的调试级别\n"
+
+#, c-format
+msgid "only one operation may be used at a time\n"
+msgstr "一次只能运行一个操作\n"
+
+#, c-format
+msgid "invalid option\n"
+msgstr "无效选项\n"
+
+#, c-format
+msgid "buffer overflow detected in arg parsing\n"
+msgstr "参数解析时探测到缓存溢出\n"
+
+#, c-format
+msgid "failed to reopen stdin for reading: (%s)\n"
+msgstr "无法打开 stdin 以读取:(%s)\n"
+
+#, c-format
+msgid "you cannot perform this operation unless you are root.\n"
+msgstr "非 root (根用户) 无法执行指定操作。\n"
+
+#, c-format
+msgid "no operation specified (use -h for help)\n"
+msgstr "没有指定的操作 (使用 -h 获取帮助) \n"
+
+#, c-format
+msgid "%s is owned by %s %s\n"
+msgstr "%s 属于 %s %s\n"
+
+#, c-format
+msgid "no file was specified for --owns\n"
+msgstr "错误:没有为 --owns 指定文件\n"
+
+#, c-format
+msgid "failed to find '%s' in PATH: %s\n"
+msgstr "无法找到 '%s' (在路径:%s 中)\n"
+
+#, c-format
+msgid "failed to read file '%s': %s\n"
+msgstr "无法读取文件 '%s':%s\n"
+
+#, c-format
+msgid "cannot determine ownership of directory '%s'\n"
+msgstr "无法测定目录 '%s' 的所属权\n"
+
+#, c-format
+msgid "cannot determine real path for '%s': %s\n"
+msgstr "无法确定 '%s' 的真实路径:%s\n"
+
+#, c-format
+msgid "path too long: %s%s\n"
+msgstr "路径过长:%s%s\n"
+
+#, c-format
+msgid "No package owns %s\n"
+msgstr "没有软件包拥有 %s\n"
+
+#, c-format
+msgid "group \"%s\" was not found\n"
+msgstr "未找到 \"%s\" 组\n"
+
+#, c-format
+msgid "%s: %d total file, "
+msgid_plural "%s: %d total files, "
+msgstr[0] "%s: 共 %d 个文件。"
+
+#, c-format
+msgid "%d missing file\n"
+msgid_plural "%d missing files\n"
+msgstr[0] "共 %d 个缺失文件\n"
+
+#, c-format
+msgid "no usable package repositories configured.\n"
+msgstr "没有设置可用的软件包库。\n"
+
+#, c-format
+msgid "package \"%s\" not found\n"
+msgstr "软件包 \"%s\" 未找到\n"
+
+#, c-format
+msgid "failed to prepare transaction (%s)\n"
+msgstr "无法准备事务处理 (%s)\n"
+
+#, c-format
+msgid ":: package %s does not have a valid architecture\n"
+msgstr ":: 软件包 '%s' 未包含一个有效的架构\n"
+
+#, c-format
+msgid ":: %s: requires %s\n"
+msgstr ":: %s: 要求 %s\n"
+
+#, c-format
+msgid "%s is designated as a HoldPkg.\n"
+msgstr "%s 被指定为 HoldPkg (保留软件包) 。\n"
+
+#, c-format
+msgid "HoldPkg was found in target list. Do you want to continue?"
+msgstr "在目标清单中发现 HoldPkg 指定的软件包。你确定要继续吗?"
+
+#, c-format
+msgid " there is nothing to do\n"
+msgstr "已无事可做\n"
+
+#, c-format
+msgid "Do you want to remove these packages?"
+msgstr "打算删除这些软件包吗?"
+
+#, c-format
+msgid "failed to commit transaction (%s)\n"
+msgstr "无法提交处理 (%s)\n"
+
+#, c-format
+msgid "could not access database directory\n"
+msgstr "无法访问数据库目录\n"
+
+#, c-format
+msgid "could not remove %s\n"
+msgstr "无法删除 %s\n"
+
+#, c-format
+msgid "Do you want to remove %s?"
+msgstr "打算删除 %s?"
+
+#, c-format
+msgid "Database directory: %s\n"
+msgstr "数据库目录:%s\n"
+
+#, c-format
+msgid "Do you want to remove unused repositories?"
+msgstr "打算删除无用的软件库?"
+
+#, c-format
+msgid "Database directory cleaned up\n"
+msgstr "数据库目录已清除\n"
+
+#, c-format
+msgid "Cache directory: %s\n"
+msgstr "缓存目录:%s\n"
+
+#, c-format
+msgid "Packages to keep:\n"
+msgstr "要保留的软件包:\n"
+
+#, c-format
+msgid " All locally installed packages\n"
+msgstr " 所有本地安装的软件包\n"
+
+#, c-format
+msgid " All current sync database packages\n"
+msgstr " 所有目前同步数据库的软件包\n"
+
+#, c-format
+msgid "Do you want to remove all other packages from cache?"
+msgstr "您想从缓存中删除全部其他软件包吗?"
+
+#, c-format
+msgid "removing old packages from cache...\n"
+msgstr "正在从缓存中删除旧软件包...\n"
+
+#, c-format
+msgid "Do you want to remove ALL files from cache?"
+msgstr "打算从缓存中删除所有文件吗?"
+
+#, c-format
+msgid "removing all files from cache...\n"
+msgstr "正在从缓存中删除所有文件...\n"
+
+#, c-format
+msgid "could not access cache directory %s\n"
+msgstr "无法访问缓存目录 %s\n"
+
+#, c-format
+msgid "File %s does not seem to be a valid package, remove it?"
+msgstr "文件 %s 不像是个有效的软件包,删除它吗?"
+
+#, c-format
+msgid "failed to update %s (%s)\n"
+msgstr "无法升级 %s (%s)\n"
+
+#, c-format
+msgid " %s is up to date\n"
+msgstr " %s 已经是最新版本\n"
+
+#, c-format
+msgid "failed to synchronize any databases\n"
+msgstr "无法同步任何数据库\n"
+
+#, c-format
+msgid "installed"
+msgstr "已安装"
+
+#, c-format
+msgid "repository '%s' does not exist\n"
+msgstr "软件库 '%s' 不存在\n"
+
+#, c-format
+msgid "package '%s' was not found in repository '%s'\n"
+msgstr "软件包 '%s' 没有在 '%s' 软件库里找到\n"
+
+#, c-format
+msgid "package '%s' was not found\n"
+msgstr "软件包 '%s' 未找到\n"
+
+#, c-format
+msgid "repository \"%s\" was not found.\n"
+msgstr "软件库 \"%s\" 未找到\n"
+
+#, c-format
+msgid "skipping target: %s\n"
+msgstr "正在跳过软件包:%s\n"
+
+#, c-format
+msgid "target not found: %s\n"
+msgstr "未找到目标:%s\n"
+
+#, c-format
+msgid ":: There are %d members in group %s:\n"
+msgstr ":: 共有 %d 组员在组 %s 中:\n"
+
+#, c-format
+msgid "database not found: %s\n"
+msgstr "未找到数据库:%s\n"
+
+#, c-format
+msgid ":: Starting full system upgrade...\n"
+msgstr ":: 正在进行全面系统更新...\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict\n"
+msgstr ":: %s 与 %s 有冲突\n"
+
+#, c-format
+msgid ":: %s and %s are in conflict (%s)\n"
+msgstr ":: %s: 与 %s 冲突 (%s)\n"
+
+#, c-format
+msgid "Proceed with download?"
+msgstr "进行下载吗?"
+
+#, c-format
+msgid "Proceed with installation?"
+msgstr "进行安装吗?"
+
+#, c-format
+msgid "%s exists in both '%s' and '%s'\n"
+msgstr "%s 同时存在于 '%s' 和 '%s'\n"
+
+#, c-format
+msgid "%s: %s exists in filesystem\n"
+msgstr "%s: 文件系统中已存在 %s \n"
+
+#, c-format
+msgid "%s is invalid or corrupted\n"
+msgstr "%s 无效或已损坏\n"
+
+#, c-format
+msgid "Errors occurred, no packages were upgraded.\n"
+msgstr "发生错误,没有软件包被更新。\n"
+
+#, c-format
+msgid ":: Synchronizing package databases...\n"
+msgstr ":: 正在同步软件包数据库...\n"
+
+#, c-format
+msgid ":: The following packages should be upgraded first :\n"
+msgstr ":: 下列软件包应当首先更新:\n"
+
+#, c-format
+msgid ""
+":: Do you want to cancel the current operation\n"
+":: and upgrade these packages now?"
+msgstr ""
+":: 打算取消当前操作\n"
+":: 并马上安装这些软件包吗? "
+
+#, c-format
+msgid "failed to init transaction (%s)\n"
+msgstr "无法初始化事务处理 (%s)\n"
+
+#, c-format
+msgid ""
+" if you're sure a package manager is not already\n"
+" running, you can remove %s\n"
+msgstr ""
+" 如果你确认软件包管理器没有在运行,\n"
+" 你可以删除 %s。\n"
+
+#, c-format
+msgid " try running pacman-db-upgrade\n"
+msgstr " 请尝试运行 pacman-db-upgrade\n"
+
+#, c-format
+msgid "failed to release transaction (%s)\n"
+msgstr "无法释放事务处理 (%s)\n"
+
+#, c-format
+msgid "None"
+msgstr "无"
+
+#, c-format
+msgid "insufficient columns available for table display\n"
+msgstr ""
+
+#, c-format
+msgid "Name"
+msgstr ""
+
+#, c-format
+msgid "Old Version"
+msgstr ""
+
+#, c-format
+msgid "New Version"
+msgstr ""
+
+#, c-format
+msgid "Size"
+msgstr ""
+
+#, c-format
+msgid "Targets (%d):"
+msgstr "目标 (%d):"
+
+#, c-format
+msgid "Remove (%d):"
+msgstr "删除 (%d):"
+
+#, fuzzy, c-format
+msgid "Total Download Size: %.2f %s\n"
+msgstr "全部下载大小: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Installed Size: %.2f %s\n"
+msgstr "全部安装大小: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Net Upgrade Size: %.2f %s\n"
+msgstr "全部下载大小: %.2f MB\n"
+
+#, fuzzy, c-format
+msgid "Total Removed Size: %.2f %s\n"
+msgstr "全部删除大小: %.2f MB\n"
+
+#, c-format
+msgid "New optional dependencies for %s\n"
+msgstr "%s 的新可选依赖\n"
+
+#, c-format
+msgid "Optional dependencies for %s\n"
+msgstr "%s 的可选依赖\n"
+
+#, c-format
+msgid "Repository %s\n"
+msgstr "软件库 %s\n"
+
+#, c-format
+msgid "Invalid value: %d is not between %d and %d\n"
+msgstr "无效值:%d 不在 %d 和 %d 之间\n"
+
+#, c-format
+msgid "Invalid number: %s\n"
+msgstr "无效数字:%s\n"
+
+#, c-format
+msgid "Enter a selection (default=all)"
+msgstr "输入某个选择 ( 默认=全部选定 )"
+
+#, c-format
+msgid "Enter a number (default=%d)"
+msgstr "输入某个数字 ( 默认=%d )"
+
+#, c-format
+msgid "[Y/n]"
+msgstr "[Y/n]"
+
+#, c-format
+msgid "[y/N]"
+msgstr "[y/N]"
+
+#, c-format
+msgid "Y"
+msgstr "Y"
+
+#, c-format
+msgid "YES"
+msgstr "是"
+
+#, c-format
+msgid "N"
+msgstr "N"
+
+#, c-format
+msgid "NO"
+msgstr "否"
+
+#, c-format
+msgid "failed to allocate string\n"
+msgstr "无法分配字符串\n"
+
+#, c-format
+msgid "error: %s"
+msgstr "错误:%s"
+
+#, c-format
+msgid "warning: %s"
+msgstr "警告:%s"
+
+#, c-format
+msgid "error: "
+msgstr "错误:"
+
+#, c-format
+msgid "warning: "
+msgstr "警告:"
+
diff --git a/src/pacman/query.c b/src/pacman/query.c
index 6c63774f..163c3319 100644
--- a/src/pacman/query.c
+++ b/src/pacman/query.c
@@ -26,7 +26,6 @@
#include <string.h>
#include <sys/stat.h>
#include <errno.h>
-#include <unistd.h>
#include <alpm.h>
#include <alpm_list.h>
@@ -41,17 +40,17 @@ static char *resolve_path(const char *file)
{
char *str = NULL;
- str = calloc(PATH_MAX + 1, sizeof(char));
+ str = calloc(PATH_MAX, sizeof(char));
if(!str) {
- return(NULL);
+ return NULL;
}
if(!realpath(file, str)) {
free(str);
- return(NULL);
+ return NULL;
}
- return(str);
+ return str;
}
/* check if filename exists in PATH */
@@ -61,10 +60,10 @@ static int search_path(char **filename, struct stat *bufptr)
size_t flen;
if((envpath = getenv("PATH")) == NULL) {
- return(-1);
+ return -1;
}
if((envpath = envpathsplit = strdup(envpath)) == NULL) {
- return(-1);
+ return -1;
}
flen = strlen(*filename);
@@ -80,7 +79,7 @@ static int search_path(char **filename, struct stat *bufptr)
fullname = malloc(plen + flen + 2);
if(!fullname) {
free(envpath);
- return(-1);
+ return -1;
}
sprintf(fullname, "%s/%s", path, *filename);
@@ -88,15 +87,15 @@ static int search_path(char **filename, struct stat *bufptr)
free(*filename);
*filename = fullname;
free(envpath);
- return(0);
+ return 0;
}
free(fullname);
}
free(envpath);
- return(-1);
+ return -1;
}
-static void print_query_fileowner(const char *filename, pmpkg_t *info)
+static void print_query_fileowner(const char *filename, alpm_pkg_t *info)
{
if(!config->quiet) {
printf(_("%s is owned by %s %s\n"), filename,
@@ -111,26 +110,29 @@ static int query_fileowner(alpm_list_t *targets)
int ret = 0;
char path[PATH_MAX];
const char *root;
- char *append;
- size_t max_length;
+ size_t rootlen;
alpm_list_t *t;
- pmdb_t *db_local;
+ alpm_db_t *db_local;
/* This code is here for safety only */
if(targets == NULL) {
- pm_fprintf(stderr, PM_LOG_ERROR, _("no file was specified for --owns\n"));
- return(1);
+ pm_fprintf(stderr, ALPM_LOG_ERROR, _("no file was specified for --owns\n"));
+ return 1;
}
/* Set up our root path buffer. We only need to copy the location of root in
* once, then we can just overwrite whatever file was there on the previous
* iteration. */
- root = alpm_option_get_root();
- strncpy(path, root, PATH_MAX - 1);
- append = path + strlen(path);
- max_length = PATH_MAX - (append - path) - 1;
+ root = alpm_option_get_root(config->handle);
+ rootlen = strlen(root);
+ if(rootlen + 1 > PATH_MAX) {
+ /* we are in trouble here */
+ pm_fprintf(stderr, ALPM_LOG_ERROR, _("path too long: %s%s\n"), root, "");
+ return 1;
+ }
+ strcpy(path, root);
- db_local = alpm_option_get_localdb();
+ db_local = alpm_option_get_localdb(config->handle);
for(t = targets; t; t = alpm_list_next(t)) {
char *filename, *dname, *rpath;
@@ -145,14 +147,14 @@ static int query_fileowner(alpm_list_t *targets)
/* if it is not a path but a program name, then check in PATH */
if(strchr(filename, '/') == NULL) {
if(search_path(&filename, &buf) == -1) {
- pm_fprintf(stderr, PM_LOG_ERROR, _("failed to find '%s' in PATH: %s\n"),
+ pm_fprintf(stderr, ALPM_LOG_ERROR, _("failed to find '%s' in PATH: %s\n"),
filename, strerror(errno));
ret++;
free(filename);
continue;
}
} else {
- pm_fprintf(stderr, PM_LOG_ERROR, _("failed to read file '%s': %s\n"),
+ pm_fprintf(stderr, ALPM_LOG_ERROR, _("failed to read file '%s': %s\n"),
filename, strerror(errno));
ret++;
free(filename);
@@ -161,7 +163,7 @@ static int query_fileowner(alpm_list_t *targets)
}
if(S_ISDIR(buf.st_mode)) {
- pm_fprintf(stderr, PM_LOG_ERROR,
+ pm_fprintf(stderr, ALPM_LOG_ERROR,
_("cannot determine ownership of directory '%s'\n"), filename);
ret++;
free(filename);
@@ -171,13 +173,13 @@ static int query_fileowner(alpm_list_t *targets)
bname = mbasename(filename);
dname = mdirname(filename);
/* for files in '/', there is no directory name to match */
- if (strcmp(dname, "") == 0) {
+ if(strcmp(dname, "") == 0) {
rpath = NULL;
} else {
rpath = resolve_path(dname);
if(!rpath) {
- pm_fprintf(stderr, PM_LOG_ERROR, _("cannot determine real path for '%s': %s\n"),
+ pm_fprintf(stderr, ALPM_LOG_ERROR, _("cannot determine real path for '%s': %s\n"),
filename, strerror(errno));
free(filename);
free(dname);
@@ -189,12 +191,14 @@ static int query_fileowner(alpm_list_t *targets)
free(dname);
for(i = alpm_db_get_pkgcache(db_local); i && !found; i = alpm_list_next(i)) {
- alpm_list_t *j;
- pmpkg_t *info = alpm_list_getdata(i);
+ alpm_pkg_t *info = alpm_list_getdata(i);
+ alpm_filelist_t *filelist = alpm_pkg_get_files(info);
+ size_t i;
- for(j = alpm_pkg_get_files(info); j && !found; j = alpm_list_next(j)) {
+ for(i = 0; i < filelist->count; i++) {
+ const alpm_file_t *file = filelist->files + i;
char *ppath, *pdname;
- const char *pkgfile = alpm_list_getdata(j);
+ const char *pkgfile = file->name;
/* avoid the costly resolve_path usage if the basenames don't match */
if(strcmp(mbasename(pkgfile), bname) != 0) {
@@ -208,11 +212,11 @@ static int query_fileowner(alpm_list_t *targets)
continue;
}
- if(strlen(pkgfile) > max_length) {
- pm_fprintf(stderr, PM_LOG_ERROR, _("path too long: %s%s\n"), root, pkgfile);
+ if(rootlen + 1 + strlen(pkgfile) > PATH_MAX) {
+ pm_fprintf(stderr, ALPM_LOG_ERROR, _("path too long: %s%s\n"), root, pkgfile);
}
/* concatenate our file and the root path */
- strcpy(append, pkgfile);
+ strcpy(path + rootlen, pkgfile);
pdname = mdirname(path);
ppath = resolve_path(pdname);
@@ -226,7 +230,7 @@ static int query_fileowner(alpm_list_t *targets)
}
}
if(!found) {
- pm_fprintf(stderr, PM_LOG_ERROR, _("No package owns %s\n"), filename);
+ pm_fprintf(stderr, ALPM_LOG_ERROR, _("No package owns %s\n"), filename);
ret++;
}
free(filename);
@@ -241,7 +245,7 @@ static int query_search(alpm_list_t *targets)
{
alpm_list_t *i, *searchlist;
int freelist;
- pmdb_t *db_local = alpm_option_get_localdb();
+ alpm_db_t *db_local = alpm_option_get_localdb(config->handle);
/* if we have a targets list, search for packages matching it */
if(targets) {
@@ -252,29 +256,21 @@ static int query_search(alpm_list_t *targets)
freelist = 0;
}
if(searchlist == NULL) {
- return(1);
+ return 1;
}
for(i = searchlist; i; i = alpm_list_next(i)) {
alpm_list_t *grp;
- pmpkg_t *pkg = alpm_list_getdata(i);
+ alpm_pkg_t *pkg = alpm_list_getdata(i);
- if (!config->quiet) {
+ if(!config->quiet) {
printf("local/%s %s", alpm_pkg_get_name(pkg), alpm_pkg_get_version(pkg));
} else {
printf("%s", alpm_pkg_get_name(pkg));
}
- /* print the package size with the output if ShowSize option set */
- if(!config->quiet && config->showsize) {
- /* Convert byte size to MB */
- double mbsize = (double)alpm_pkg_get_size(pkg) / (1024.0 * 1024.0);
-
- printf(" [%.2f MB]", mbsize);
- }
-
- if (!config->quiet) {
+ if(!config->quiet) {
if((grp = alpm_pkg_get_groups(pkg)) != NULL) {
alpm_list_t *k;
printf(" (");
@@ -300,7 +296,7 @@ static int query_search(alpm_list_t *targets)
if(freelist) {
alpm_list_free(searchlist);
}
- return(0);
+ return 0;
}
static int query_group(alpm_list_t *targets)
@@ -308,29 +304,26 @@ static int query_group(alpm_list_t *targets)
alpm_list_t *i, *j;
char *grpname = NULL;
int ret = 0;
- pmdb_t *db_local = alpm_option_get_localdb();
+ alpm_db_t *db_local = alpm_option_get_localdb(config->handle);
if(targets == NULL) {
- for(j = alpm_db_get_grpcache(db_local); j; j = alpm_list_next(j)) {
- pmgrp_t *grp = alpm_list_getdata(j);
- const alpm_list_t *p, *packages;
- const char *grpname;
-
- grpname = alpm_grp_get_name(grp);
- packages = alpm_grp_get_pkgs(grp);
+ for(j = alpm_db_get_groupcache(db_local); j; j = alpm_list_next(j)) {
+ alpm_group_t *grp = alpm_list_getdata(j);
+ const alpm_list_t *p;
- for(p = packages; p; p = alpm_list_next(p)) {
- printf("%s %s\n", grpname, alpm_pkg_get_name(alpm_list_getdata(p)));
+ for(p = grp->packages; p; p = alpm_list_next(p)) {
+ alpm_pkg_t *pkg = alpm_list_getdata(p);
+ printf("%s %s\n", grp->name, alpm_pkg_get_name(pkg));
}
}
} else {
for(i = targets; i; i = alpm_list_next(i)) {
- pmgrp_t *grp;
+ alpm_group_t *grp;
grpname = alpm_list_getdata(i);
- grp = alpm_db_readgrp(db_local, grpname);
+ grp = alpm_db_readgroup(db_local, grpname);
if(grp) {
- const alpm_list_t *p, *packages = alpm_grp_get_pkgs(grp);
- for(p = packages; p; p = alpm_list_next(p)) {
+ const alpm_list_t *p;
+ for(p = grp->packages; p; p = alpm_list_next(p)) {
if(!config->quiet) {
printf("%s %s\n", grpname,
alpm_pkg_get_name(alpm_list_getdata(p)));
@@ -339,7 +332,7 @@ static int query_group(alpm_list_t *targets)
}
}
} else {
- pm_fprintf(stderr, PM_LOG_ERROR, _("group \"%s\" was not found\n"), grpname);
+ pm_fprintf(stderr, ALPM_LOG_ERROR, _("group \"%s\" was not found\n"), grpname);
ret++;
}
}
@@ -347,90 +340,94 @@ static int query_group(alpm_list_t *targets)
return ret;
}
-static int is_foreign(pmpkg_t *pkg)
+static int is_foreign(alpm_pkg_t *pkg)
{
const char *pkgname = alpm_pkg_get_name(pkg);
alpm_list_t *j;
- alpm_list_t *sync_dbs = alpm_option_get_syncdbs();
+ alpm_list_t *sync_dbs = alpm_option_get_syncdbs(config->handle);
int match = 0;
for(j = sync_dbs; j; j = alpm_list_next(j)) {
- pmdb_t *db = alpm_list_getdata(j);
- pmpkg_t *findpkg = alpm_db_get_pkg(db, pkgname);
+ alpm_db_t *db = alpm_list_getdata(j);
+ alpm_pkg_t *findpkg = alpm_db_get_pkg(db, pkgname);
if(findpkg) {
match = 1;
break;
}
}
if(match == 0) {
- return(1);
+ return 1;
}
- return(0);
+ return 0;
}
-static int is_unrequired(pmpkg_t *pkg)
+static int is_unrequired(alpm_pkg_t *pkg)
{
alpm_list_t *requiredby = alpm_pkg_compute_requiredby(pkg);
if(requiredby == NULL) {
- return(1);
+ return 1;
}
FREELIST(requiredby);
- return(0);
+ return 0;
}
-static int filter(pmpkg_t *pkg)
+static int filter(alpm_pkg_t *pkg)
{
/* check if this package was explicitly installed */
if(config->op_q_explicit &&
- alpm_pkg_get_reason(pkg) != PM_PKG_REASON_EXPLICIT) {
- return(0);
+ alpm_pkg_get_reason(pkg) != ALPM_PKG_REASON_EXPLICIT) {
+ return 0;
}
/* check if this package was installed as a dependency */
if(config->op_q_deps &&
- alpm_pkg_get_reason(pkg) != PM_PKG_REASON_DEPEND) {
- return(0);
+ alpm_pkg_get_reason(pkg) != ALPM_PKG_REASON_DEPEND) {
+ return 0;
}
/* check if this pkg isn't in a sync DB */
if(config->op_q_foreign && !is_foreign(pkg)) {
- return(0);
+ return 0;
}
/* check if this pkg is unrequired */
if(config->op_q_unrequired && !is_unrequired(pkg)) {
- return(0);
+ return 0;
}
/* check if this pkg is outdated */
- if(config->op_q_upgrade && (alpm_sync_newversion(pkg, alpm_option_get_syncdbs()) == NULL)) {
- return(0);
+ if(config->op_q_upgrade && (alpm_sync_newversion(pkg,
+ alpm_option_get_syncdbs(config->handle)) == NULL)) {
+ return 0;
}
- return(1);
+ return 1;
}
/* Loop through the packages. For each package,
* loop through files to check if they exist. */
-static int check(pmpkg_t *pkg)
+static int check(alpm_pkg_t *pkg)
{
- alpm_list_t *i;
- const char *root;
+ const char *root, *pkgname;
int allfiles = 0, errors = 0;
size_t rootlen;
char f[PATH_MAX];
+ alpm_filelist_t *filelist;
+ size_t i;
- root = alpm_option_get_root();
+ root = alpm_option_get_root(config->handle);
rootlen = strlen(root);
if(rootlen + 1 > PATH_MAX) {
/* we are in trouble here */
- pm_fprintf(stderr, PM_LOG_ERROR, _("path too long: %s%s\n"), root, "");
- return(1);
+ pm_fprintf(stderr, ALPM_LOG_ERROR, _("path too long: %s%s\n"), root, "");
+ return 1;
}
strcpy(f, root);
- const char *pkgname = alpm_pkg_get_name(pkg);
- for(i = alpm_pkg_get_files(pkg); i; i = alpm_list_next(i)) {
+ pkgname = alpm_pkg_get_name(pkg);
+ filelist = alpm_pkg_get_files(pkg);
+ for(i = 0; i < filelist->count; i++) {
+ const alpm_file_t *file = filelist->files + i;
struct stat st;
- const char *path = alpm_list_getdata(i);
+ const char *path = file->name;
if(rootlen + 1 + strlen(path) > PATH_MAX) {
- pm_fprintf(stderr, PM_LOG_WARNING, _("path too long: %s%s\n"), root, path);
+ pm_fprintf(stderr, ALPM_LOG_WARNING, _("path too long: %s%s\n"), root, path);
continue;
}
strcpy(f + rootlen, path);
@@ -440,7 +437,7 @@ static int check(pmpkg_t *pkg)
if(config->quiet) {
printf("%s %s\n", pkgname, f);
} else {
- pm_printf(PM_LOG_WARNING, "%s: %s (%s)\n",
+ pm_printf(ALPM_LOG_WARNING, "%s: %s (%s)\n",
pkgname, f, strerror(errno));
}
errors++;
@@ -454,19 +451,18 @@ static int check(pmpkg_t *pkg)
(unsigned long)errors), errors);
}
- return(errors != 0 ? 1 : 0);
+ return (errors != 0 ? 1 : 0);
}
-static int display(pmpkg_t *pkg)
+static int display(alpm_pkg_t *pkg)
{
int ret = 0;
if(config->op_q_info) {
if(config->op_q_isfile) {
- /* omit info that isn't applicable for a file package */
- dump_pkg_full(pkg, 0);
+ dump_pkg_full(pkg, PKG_FROM_FILE, 0);
} else {
- dump_pkg_full(pkg, config->op_q_info);
+ dump_pkg_full(pkg, PKG_FROM_LOCALDB, config->op_q_info > 1);
}
}
if(config->op_q_list) {
@@ -480,13 +476,13 @@ static int display(pmpkg_t *pkg)
}
if(!config->op_q_info && !config->op_q_list
&& !config->op_q_changelog && !config->op_q_check) {
- if (!config->quiet) {
+ if(!config->quiet) {
printf("%s %s\n", alpm_pkg_get_name(pkg), alpm_pkg_get_version(pkg));
} else {
printf("%s\n", alpm_pkg_get_name(pkg));
}
}
- return(ret);
+ return ret;
}
int pacman_query(alpm_list_t *targets)
@@ -494,41 +490,38 @@ int pacman_query(alpm_list_t *targets)
int ret = 0;
int match = 0;
alpm_list_t *i;
- pmpkg_t *pkg = NULL;
- pmdb_t *db_local;
+ alpm_pkg_t *pkg = NULL;
+ alpm_db_t *db_local;
/* First: operations that do not require targets */
/* search for a package */
if(config->op_q_search) {
ret = query_search(targets);
- return(ret);
+ return ret;
}
/* looking for groups */
if(config->group) {
ret = query_group(targets);
- return(ret);
+ return ret;
}
- if(config->op_q_foreign) {
- /* ensure we have at least one valid sync db set up */
- alpm_list_t *sync_dbs = alpm_option_get_syncdbs();
- if(sync_dbs == NULL || alpm_list_count(sync_dbs) == 0) {
- pm_printf(PM_LOG_ERROR, _("no usable package repositories configured.\n"));
- return(1);
+ if(config->op_q_foreign || config->op_q_upgrade) {
+ if(check_syncdbs(1, 1)) {
+ return 1;
}
}
- db_local = alpm_option_get_localdb();
+ db_local = alpm_option_get_localdb(config->handle);
/* operations on all packages in the local DB
* valid: no-op (plain -Q), list, info, check
* invalid: isfile, owns */
if(targets == NULL) {
if(config->op_q_isfile || config->op_q_owns) {
- pm_printf(PM_LOG_ERROR, _("no targets specified (use -h for help)\n"));
- return(1);
+ pm_printf(ALPM_LOG_ERROR, _("no targets specified (use -h for help)\n"));
+ return 1;
}
for(i = alpm_db_get_pkgcache(db_local); i; i = alpm_list_next(i)) {
@@ -544,7 +537,7 @@ int pacman_query(alpm_list_t *targets)
if(!match) {
ret = 1;
}
- return(ret);
+ return ret;
}
/* Second: operations that require target(s) */
@@ -552,7 +545,7 @@ int pacman_query(alpm_list_t *targets)
/* determine the owner of a file */
if(config->op_q_owns) {
ret = query_fileowner(targets);
- return(ret);
+ return ret;
}
/* operations on named packages in the local DB
@@ -561,13 +554,13 @@ int pacman_query(alpm_list_t *targets)
char *strname = alpm_list_getdata(i);
if(config->op_q_isfile) {
- alpm_pkg_load(strname, 1, &pkg);
+ alpm_pkg_load(config->handle, strname, 1, 0, &pkg);
} else {
pkg = alpm_db_get_pkg(db_local, strname);
}
if(pkg == NULL) {
- pm_fprintf(stderr, PM_LOG_ERROR, _("package \"%s\" not found\n"), strname);
+ pm_fprintf(stderr, ALPM_LOG_ERROR, _("package \"%s\" not found\n"), strname);
ret = 1;
continue;
}
@@ -590,7 +583,7 @@ int pacman_query(alpm_list_t *targets)
ret = 1;
}
- return(ret);
+ return ret;
}
/* vim: set ts=2 sw=2 noet: */
diff --git a/src/pacman/remove.c b/src/pacman/remove.c
index fb02e242..f0ac04e2 100644
--- a/src/pacman/remove.c
+++ b/src/pacman/remove.c
@@ -31,34 +31,36 @@
#include "util.h"
#include "conf.h"
-static int remove_target(char *target)
+static int remove_target(const char *target)
{
- pmpkg_t *info;
- pmdb_t *db_local = alpm_option_get_localdb();
+ alpm_pkg_t *info;
+ alpm_db_t *db_local = alpm_option_get_localdb(config->handle);
alpm_list_t *p;
if((info = alpm_db_get_pkg(db_local, target)) != NULL) {
- if(alpm_remove_pkg(info) == -1) {
- pm_fprintf(stderr, PM_LOG_ERROR, "'%s': %s\n", target, alpm_strerrorlast());
- return(-1);
+ if(alpm_remove_pkg(config->handle, info) == -1) {
+ pm_fprintf(stderr, ALPM_LOG_ERROR, "'%s': %s\n", target,
+ alpm_strerror(alpm_errno(config->handle)));
+ return -1;
}
- return(0);
+ return 0;
}
/* fallback to group */
- pmgrp_t *grp = alpm_db_readgrp(db_local, target);
+ alpm_group_t *grp = alpm_db_readgroup(db_local, target);
if(grp == NULL) {
- pm_fprintf(stderr, PM_LOG_ERROR, "'%s': target not found\n", target);
- return(-1);
+ pm_fprintf(stderr, ALPM_LOG_ERROR, "'%s': target not found\n", target);
+ return -1;
}
- for(p = alpm_grp_get_pkgs(grp); p; p = alpm_list_next(p)) {
- pmpkg_t *pkg = alpm_list_getdata(p);
- if(alpm_remove_pkg(pkg) == -1) {
- pm_fprintf(stderr, PM_LOG_ERROR, "'%s': %s\n", target, alpm_strerrorlast());
- return(-1);
+ for(p = grp->packages; p; p = alpm_list_next(p)) {
+ alpm_pkg_t *pkg = alpm_list_getdata(p);
+ if(alpm_remove_pkg(config->handle, pkg) == -1) {
+ pm_fprintf(stderr, ALPM_LOG_ERROR, "'%s': %s\n", target,
+ alpm_strerror(alpm_errno(config->handle)));
+ return -1;
}
}
- return(0);
+ return 0;
}
/**
@@ -74,13 +76,13 @@ int pacman_remove(alpm_list_t *targets)
alpm_list_t *i, *data = NULL;
if(targets == NULL) {
- pm_printf(PM_LOG_ERROR, _("no targets specified (use -h for help)\n"));
- return(1);
+ pm_printf(ALPM_LOG_ERROR, _("no targets specified (use -h for help)\n"));
+ return 1;
}
/* Step 0: create a new transaction */
- if(trans_init(config->flags) == -1) {
- return(1);
+ if(trans_init(config->flags, 0) == -1) {
+ return 1;
}
/* Step 1: add targets to the created transaction */
@@ -99,40 +101,39 @@ int pacman_remove(alpm_list_t *targets)
}
/* Step 2: prepare the transaction based on its type, targets and flags */
- if(alpm_trans_prepare(&data) == -1) {
- pm_fprintf(stderr, PM_LOG_ERROR, _("failed to prepare transaction (%s)\n"),
- alpm_strerrorlast());
- switch(pm_errno) {
- case PM_ERR_PKG_INVALID_ARCH:
+ if(alpm_trans_prepare(config->handle, &data) == -1) {
+ enum _alpm_errno_t err = alpm_errno(config->handle);
+ pm_fprintf(stderr, ALPM_LOG_ERROR, _("failed to prepare transaction (%s)\n"),
+ alpm_strerror(err));
+ switch(err) {
+ case ALPM_ERR_PKG_INVALID_ARCH:
for(i = data; i; i = alpm_list_next(i)) {
char *pkg = alpm_list_getdata(i);
printf(_(":: package %s does not have a valid architecture\n"), pkg);
}
break;
- case PM_ERR_UNSATISFIED_DEPS:
+ case ALPM_ERR_UNSATISFIED_DEPS:
for(i = data; i; i = alpm_list_next(i)) {
- pmdepmissing_t *miss = alpm_list_getdata(i);
- pmdepend_t *dep = alpm_miss_get_dep(miss);
- char *depstring = alpm_dep_compute_string(dep);
- printf(_(":: %s: requires %s\n"), alpm_miss_get_target(miss),
- depstring);
+ alpm_depmissing_t *miss = alpm_list_getdata(i);
+ char *depstring = alpm_dep_compute_string(miss->depend);
+ printf(_(":: %s: requires %s\n"), miss->target, depstring);
free(depstring);
}
- FREELIST(data);
break;
default:
break;
}
+ FREELIST(data);
retval = 1;
goto cleanup;
}
/* Search for holdpkg in target list */
int holdpkg = 0;
- for(i = alpm_trans_get_remove(); i; i = alpm_list_next(i)) {
- pmpkg_t *pkg = alpm_list_getdata(i);
+ for(i = alpm_trans_get_remove(config->handle); i; i = alpm_list_next(i)) {
+ alpm_pkg_t *pkg = alpm_list_getdata(i);
if(alpm_list_find_str(config->holdpkg, alpm_pkg_get_name(pkg))) {
- pm_printf(PM_LOG_WARNING, _("%s is designated as a HoldPkg.\n"),
+ pm_printf(ALPM_LOG_WARNING, _("%s is designated as a HoldPkg.\n"),
alpm_pkg_get_name(pkg));
holdpkg = 1;
}
@@ -143,7 +144,7 @@ int pacman_remove(alpm_list_t *targets)
}
/* Step 3: actually perform the removal */
- alpm_list_t *pkglist = alpm_trans_get_remove();
+ alpm_list_t *pkglist = alpm_trans_get_remove(config->handle);
if(pkglist == NULL) {
printf(_(" there is nothing to do\n"));
goto cleanup; /* we are done */
@@ -162,18 +163,20 @@ int pacman_remove(alpm_list_t *targets)
goto cleanup;
}
- if(alpm_trans_commit(NULL) == -1) {
- pm_fprintf(stderr, PM_LOG_ERROR, _("failed to commit transaction (%s)\n"),
- alpm_strerrorlast());
+ if(alpm_trans_commit(config->handle, &data) == -1) {
+ pm_fprintf(stderr, ALPM_LOG_ERROR, _("failed to commit transaction (%s)\n"),
+ alpm_strerror(alpm_errno(config->handle)));
retval = 1;
}
+ FREELIST(data);
+
/* Step 4: release transaction resources */
cleanup:
if(trans_release() == -1) {
retval = 1;
}
- return(retval);
+ return retval;
}
/* vim: set ts=2 sw=2 noet: */
diff --git a/src/pacman/sync.c b/src/pacman/sync.c
index 6962306a..3846b303 100644
--- a/src/pacman/sync.c
+++ b/src/pacman/sync.c
@@ -39,18 +39,19 @@
/* if keep_used != 0, then the db files which match an used syncdb
* will be kept */
-static int sync_cleandb(const char *dbpath, int keep_used) {
+static int sync_cleandb(const char *dbpath, int keep_used)
+{
DIR *dir;
struct dirent *ent;
alpm_list_t *syncdbs;
dir = opendir(dbpath);
if(dir == NULL) {
- pm_fprintf(stderr, PM_LOG_ERROR, _("could not access database directory\n"));
- return(1);
+ pm_fprintf(stderr, ALPM_LOG_ERROR, _("could not access database directory\n"));
+ return 1;
}
- syncdbs = alpm_option_get_syncdbs();
+ syncdbs = alpm_option_get_syncdbs(config->handle);
rewinddir(dir);
/* step through the directory one file at a time */
@@ -81,10 +82,10 @@ static int sync_cleandb(const char *dbpath, int keep_used) {
len = strlen(path);
if(S_ISDIR(buf.st_mode) || strcmp(path + len - 3, ".db") != 0) {
if(rmrf(path)) {
- pm_fprintf(stderr, PM_LOG_ERROR,
+ pm_fprintf(stderr, ALPM_LOG_ERROR,
_("could not remove %s\n"), path);
closedir(dir);
- return(1);
+ return 1;
}
continue;
}
@@ -94,7 +95,7 @@ static int sync_cleandb(const char *dbpath, int keep_used) {
len = strlen(dname);
char *dbname = strndup(dname, len - 3);
for(i = syncdbs; i && !found; i = alpm_list_next(i)) {
- pmdb_t *db = alpm_list_getdata(i);
+ alpm_db_t *db = alpm_list_getdata(i);
found = !strcmp(dbname, alpm_db_get_name(db));
}
free(dbname);
@@ -107,26 +108,27 @@ static int sync_cleandb(const char *dbpath, int keep_used) {
}
if(rmrf(path)) {
- pm_fprintf(stderr, PM_LOG_ERROR,
+ pm_fprintf(stderr, ALPM_LOG_ERROR,
_("could not remove %s\n"), path);
closedir(dir);
- return(1);
+ return 1;
}
}
}
closedir(dir);
- return(0);
+ return 0;
}
-static int sync_cleandb_all(void) {
+static int sync_cleandb_all(void)
+{
const char *dbpath;
char newdbpath[PATH_MAX];
int ret = 0;
- dbpath = alpm_option_get_dbpath();
+ dbpath = alpm_option_get_dbpath(config->handle);
printf(_("Database directory: %s\n"), dbpath);
if(!yesno(_("Do you want to remove unused repositories?"))) {
- return(0);
+ return 0;
}
/* The sync dbs were previously put in dbpath/ but are now in dbpath/sync/.
* We will clean everything in dbpath/ except local/, sync/ and db.lck, and
@@ -137,18 +139,19 @@ static int sync_cleandb_all(void) {
ret += sync_cleandb(newdbpath, 1);
printf(_("Database directory cleaned up\n"));
- return(ret);
+ return ret;
}
static int sync_cleancache(int level)
{
alpm_list_t *i;
- alpm_list_t *sync_dbs = alpm_option_get_syncdbs();
- pmdb_t *db_local = alpm_option_get_localdb();
+ alpm_list_t *sync_dbs = alpm_option_get_syncdbs(config->handle);
+ alpm_db_t *db_local = alpm_option_get_localdb(config->handle);
+ alpm_list_t *cachedirs = alpm_option_get_cachedirs(config->handle);
int ret = 0;
- for(i = alpm_option_get_cachedirs(); i; i = alpm_list_next(i)) {
- printf(_("Cache directory: %s\n"), (char*)alpm_list_getdata(i));
+ for(i = cachedirs; i; i = alpm_list_next(i)) {
+ printf(_("Cache directory: %s\n"), (char *)alpm_list_getdata(i));
}
if(!config->cleanmethod) {
@@ -165,23 +168,23 @@ static int sync_cleancache(int level)
printf(_(" All current sync database packages\n"));
}
if(!yesno(_("Do you want to remove all other packages from cache?"))) {
- return(0);
+ return 0;
}
printf(_("removing old packages from cache...\n"));
} else {
if(!noyes(_("Do you want to remove ALL files from cache?"))) {
- return(0);
+ return 0;
}
printf(_("removing all files from cache...\n"));
}
- for(i = alpm_option_get_cachedirs(); i; i = alpm_list_next(i)) {
+ for(i = cachedirs; i; i = alpm_list_next(i)) {
const char *cachedir = alpm_list_getdata(i);
DIR *dir = opendir(cachedir);
struct dirent *ent;
if(dir == NULL) {
- pm_fprintf(stderr, PM_LOG_ERROR,
+ pm_fprintf(stderr, ALPM_LOG_ERROR,
_("could not access cache directory %s\n"), cachedir);
ret++;
continue;
@@ -191,10 +194,10 @@ static int sync_cleancache(int level)
/* step through the directory one file at a time */
while((ent = readdir(dir)) != NULL) {
char path[PATH_MAX];
+ size_t pathlen;
int delete = 1;
- pmpkg_t *localpkg = NULL, *pkg = NULL;
+ alpm_pkg_t *localpkg = NULL, *pkg = NULL;
const char *local_name, *local_version;
- alpm_list_t *j;
if(strcmp(ent->d_name, ".") == 0 || strcmp(ent->d_name, "..") == 0) {
continue;
@@ -208,11 +211,19 @@ static int sync_cleancache(int level)
continue;
}
+ /* we handle .sig files with packages, not separately */
+ pathlen = strlen(path);
+ if(strcmp(path + pathlen - 4, ".sig") == 0) {
+ continue;
+ }
+
/* attempt to load the package, prompt removal on failures as we may have
* files here that aren't valid packages. we also don't need a full
* load of the package, just the metadata. */
- if(alpm_pkg_load(path, 0, &localpkg) != 0 || localpkg == NULL) {
- if(yesno(_("File %s does not seem to be a valid package, remove it?"), path)) {
+ if(alpm_pkg_load(config->handle, path, 0, 0, &localpkg) != 0
+ || localpkg == NULL) {
+ if(yesno(_("File %s does not seem to be a valid package, remove it?"),
+ path)) {
if(localpkg) {
alpm_pkg_free(localpkg);
}
@@ -229,20 +240,21 @@ static int sync_cleancache(int level)
if(pkg != NULL && alpm_pkg_vercmp(local_version,
alpm_pkg_get_version(pkg)) == 0) {
/* package was found in local DB and version matches, keep it */
- pm_printf(PM_LOG_DEBUG, "pkg %s-%s found in local db\n",
+ pm_printf(ALPM_LOG_DEBUG, "pkg %s-%s found in local db\n",
local_name, local_version);
delete = 0;
}
}
if(config->cleanmethod & PM_CLEAN_KEEPCUR) {
+ alpm_list_t *j;
/* check if this package is in a sync DB */
for(j = sync_dbs; j && delete; j = alpm_list_next(j)) {
- pmdb_t *db = alpm_list_getdata(j);
+ alpm_db_t *db = alpm_list_getdata(j);
pkg = alpm_db_get_pkg(db, local_name);
if(pkg != NULL && alpm_pkg_vercmp(local_version,
alpm_pkg_get_version(pkg)) == 0) {
/* package was found in a sync DB and version matches, keep it */
- pm_printf(PM_LOG_DEBUG, "pkg %s-%s found in sync db\n",
+ pm_printf(ALPM_LOG_DEBUG, "pkg %s-%s found in sync db\n",
local_name, local_version);
delete = 0;
}
@@ -253,12 +265,17 @@ static int sync_cleancache(int level)
if(delete) {
unlink(path);
+ /* unlink a signature file if present too */
+ if(PATH_MAX - 5 >= pathlen) {
+ strcpy(path + pathlen, ".sig");
+ unlink(path);
+ }
}
}
closedir(dir);
}
- return(ret);
+ return ret;
}
static int sync_synctree(int level, alpm_list_t *syncs)
@@ -266,17 +283,13 @@ static int sync_synctree(int level, alpm_list_t *syncs)
alpm_list_t *i;
int success = 0, ret;
- if(trans_init(0) == -1) {
- return(0);
- }
-
for(i = syncs; i; i = alpm_list_next(i)) {
- pmdb_t *db = alpm_list_getdata(i);
+ alpm_db_t *db = alpm_list_getdata(i);
ret = alpm_db_update((level < 2 ? 0 : 1), db);
if(ret < 0) {
- pm_fprintf(stderr, PM_LOG_ERROR, _("failed to update %s (%s)\n"),
- alpm_db_get_name(db), alpm_strerrorlast());
+ pm_fprintf(stderr, ALPM_LOG_ERROR, _("failed to update %s (%s)\n"),
+ alpm_db_get_name(db), alpm_strerror(alpm_errno(config->handle)));
} else if(ret == 1) {
printf(_(" %s is up to date\n"), alpm_db_get_name(db));
success++;
@@ -285,24 +298,21 @@ static int sync_synctree(int level, alpm_list_t *syncs)
}
}
- if(trans_release() == -1) {
- return(0);
- }
/* We should always succeed if at least one DB was upgraded - we may possibly
* fail later with unresolved deps, but that should be rare, and would be
* expected
*/
if(!success) {
- pm_fprintf(stderr, PM_LOG_ERROR, _("failed to synchronize any databases\n"));
+ pm_fprintf(stderr, ALPM_LOG_ERROR, _("failed to synchronize any databases\n"));
}
- return(success > 0);
+ return (success > 0);
}
-static void print_installed(pmdb_t *db_local, pmpkg_t *pkg)
+static void print_installed(alpm_db_t *db_local, alpm_pkg_t *pkg)
{
const char *pkgname = alpm_pkg_get_name(pkg);
const char *pkgver = alpm_pkg_get_version(pkg);
- pmpkg_t *lpkg = alpm_db_get_pkg(db_local, pkgname);
+ alpm_pkg_t *lpkg = alpm_db_get_pkg(db_local, pkgname);
if(lpkg) {
const char *lpkgver = alpm_pkg_get_version(lpkg);
if(strcmp(lpkgver,pkgver) == 0) {
@@ -319,10 +329,10 @@ static int sync_search(alpm_list_t *syncs, alpm_list_t *targets)
alpm_list_t *i, *j, *ret;
int freelist;
int found = 0;
- pmdb_t *db_local = alpm_option_get_localdb();
+ alpm_db_t *db_local = alpm_option_get_localdb(config->handle);
for(i = syncs; i; i = alpm_list_next(i)) {
- pmdb_t *db = alpm_list_getdata(i);
+ alpm_db_t *db = alpm_list_getdata(i);
/* if we have a targets list, search for packages matching it */
if(targets) {
ret = alpm_db_search(db, targets);
@@ -338,24 +348,16 @@ static int sync_search(alpm_list_t *syncs, alpm_list_t *targets)
}
for(j = ret; j; j = alpm_list_next(j)) {
alpm_list_t *grp;
- pmpkg_t *pkg = alpm_list_getdata(j);
+ alpm_pkg_t *pkg = alpm_list_getdata(j);
- if (!config->quiet) {
+ if(!config->quiet) {
printf("%s/%s %s", alpm_db_get_name(db), alpm_pkg_get_name(pkg),
alpm_pkg_get_version(pkg));
} else {
printf("%s", alpm_pkg_get_name(pkg));
}
- /* print the package size with the output if ShowSize option set */
- if(!config->quiet && config->showsize) {
- /* Convert byte size to MB */
- double mbsize = (double)alpm_pkg_get_size(pkg) / (1024.0 * 1024.0);
-
- printf(" [%.2f MB]", mbsize);
- }
-
- if (!config->quiet) {
+ if(!config->quiet) {
if((grp = alpm_pkg_get_groups(pkg)) != NULL) {
alpm_list_t *k;
printf(" (");
@@ -384,7 +386,7 @@ static int sync_search(alpm_list_t *syncs, alpm_list_t *targets)
}
}
- return(!found);
+ return !found;
}
static int sync_group(int level, alpm_list_t *syncs, alpm_list_t *targets)
@@ -395,12 +397,12 @@ static int sync_group(int level, alpm_list_t *syncs, alpm_list_t *targets)
for(i = targets; i; i = alpm_list_next(i)) {
const char *grpname = alpm_list_getdata(i);
for(j = syncs; j; j = alpm_list_next(j)) {
- pmdb_t *db = alpm_list_getdata(j);
- pmgrp_t *grp = alpm_db_readgrp(db, grpname);
+ alpm_db_t *db = alpm_list_getdata(j);
+ alpm_group_t *grp = alpm_db_readgroup(db, grpname);
if(grp) {
/* get names of packages in group */
- for(k = alpm_grp_get_pkgs(grp); k; k = alpm_list_next(k)) {
+ for(k = grp->packages; k; k = alpm_list_next(k)) {
if(!config->quiet) {
printf("%s %s\n", grpname,
alpm_pkg_get_name(alpm_list_getdata(k)));
@@ -413,26 +415,25 @@ static int sync_group(int level, alpm_list_t *syncs, alpm_list_t *targets)
}
} else {
for(i = syncs; i; i = alpm_list_next(i)) {
- pmdb_t *db = alpm_list_getdata(i);
+ alpm_db_t *db = alpm_list_getdata(i);
- for(j = alpm_db_get_grpcache(db); j; j = alpm_list_next(j)) {
- pmgrp_t *grp = alpm_list_getdata(j);
- const char *grpname = alpm_grp_get_name(grp);
+ for(j = alpm_db_get_groupcache(db); j; j = alpm_list_next(j)) {
+ alpm_group_t *grp = alpm_list_getdata(j);
if(level > 1) {
- for(k = alpm_grp_get_pkgs(grp); k; k = alpm_list_next(k)) {
- printf("%s %s\n", grpname,
+ for(k = grp->packages; k; k = alpm_list_next(k)) {
+ printf("%s %s\n", grp->name,
alpm_pkg_get_name(alpm_list_getdata(k)));
}
} else {
/* print grp names only, no package names */
- printf("%s\n", grpname);
+ printf("%s\n", grp->name);
}
}
}
}
- return(0);
+ return 0;
}
static int sync_info(alpm_list_t *syncs, alpm_list_t *targets)
@@ -442,96 +443,77 @@ static int sync_info(alpm_list_t *syncs, alpm_list_t *targets)
if(targets) {
for(i = targets; i; i = alpm_list_next(i)) {
- pmdb_t *db = NULL;
- int foundpkg = 0;
-
- char target[512]; /* TODO is this enough space? */
- char *repo = NULL, *pkgstr = NULL;
+ const char *target = alpm_list_getdata(i);
+ char *name = strdup(target);
+ char *repo, *pkgstr;
+ int foundpkg = 0, founddb = 0;
- strncpy(target, i->data, 512);
- pkgstr = strchr(target, '/');
+ pkgstr = strchr(name, '/');
if(pkgstr) {
- repo = target;
+ repo = name;
*pkgstr = '\0';
++pkgstr;
+ } else {
+ repo = NULL;
+ pkgstr = name;
+ }
- for(j = syncs; j; j = alpm_list_next(j)) {
- db = alpm_list_getdata(j);
- if(strcmp(repo, alpm_db_get_name(db)) == 0) {
- break;
- }
- db = NULL;
- }
-
- if(!db) {
- pm_fprintf(stderr, PM_LOG_ERROR,
- _("repository '%s' does not exist\n"), repo);
- return(1);
+ for(j = syncs; j; j = alpm_list_next(j)) {
+ alpm_db_t *db = alpm_list_getdata(j);
+ if(repo && strcmp(repo, alpm_db_get_name(db)) != 0) {
+ continue;
}
+ founddb = 1;
for(k = alpm_db_get_pkgcache(db); k; k = alpm_list_next(k)) {
- pmpkg_t *pkg = alpm_list_getdata(k);
+ alpm_pkg_t *pkg = alpm_list_getdata(k);
if(strcmp(alpm_pkg_get_name(pkg), pkgstr) == 0) {
- dump_pkg_sync(pkg, alpm_db_get_name(db), config->op_s_info);
+ dump_pkg_full(pkg, PKG_FROM_SYNCDB, config->op_s_info > 1);
foundpkg = 1;
break;
}
}
+ }
- if(!foundpkg) {
- pm_fprintf(stderr, PM_LOG_ERROR,
- _("package '%s' was not found in repository '%s'\n"), pkgstr, repo);
- ret++;
- }
- } else {
- pkgstr = target;
-
- for(j = syncs; j; j = alpm_list_next(j)) {
- pmdb_t *db = alpm_list_getdata(j);
-
- for(k = alpm_db_get_pkgcache(db); k; k = alpm_list_next(k)) {
- pmpkg_t *pkg = alpm_list_getdata(k);
-
- if(strcmp(alpm_pkg_get_name(pkg), pkgstr) == 0) {
- dump_pkg_sync(pkg, alpm_db_get_name(db), config->op_s_info);
- foundpkg = 1;
- break;
- }
- }
- }
- if(!foundpkg) {
- pm_fprintf(stderr, PM_LOG_ERROR,
- _("package '%s' was not found\n"), pkgstr);
- ret++;
- }
+ if(!founddb) {
+ pm_fprintf(stderr, ALPM_LOG_ERROR,
+ _("repository '%s' does not exist\n"), repo);
+ ret++;
+ }
+ if(!foundpkg) {
+ pm_fprintf(stderr, ALPM_LOG_ERROR,
+ _("package '%s' was not found\n"), target);
+ ret++;
}
+ free(name);
}
} else {
for(i = syncs; i; i = alpm_list_next(i)) {
- pmdb_t *db = alpm_list_getdata(i);
+ alpm_db_t *db = alpm_list_getdata(i);
for(j = alpm_db_get_pkgcache(db); j; j = alpm_list_next(j)) {
- dump_pkg_sync(alpm_list_getdata(j), alpm_db_get_name(db), config->op_s_info);
+ alpm_pkg_t *pkg = alpm_list_getdata(j);
+ dump_pkg_full(pkg, PKG_FROM_SYNCDB, config->op_s_info > 1);
}
}
}
- return(ret);
+ return ret;
}
static int sync_list(alpm_list_t *syncs, alpm_list_t *targets)
{
alpm_list_t *i, *j, *ls = NULL;
- pmdb_t *db_local = alpm_option_get_localdb();
+ alpm_db_t *db_local = alpm_option_get_localdb(config->handle);
if(targets) {
for(i = targets; i; i = alpm_list_next(i)) {
const char *repo = alpm_list_getdata(i);
- pmdb_t *db = NULL;
+ alpm_db_t *db = NULL;
for(j = syncs; j; j = alpm_list_next(j)) {
- pmdb_t *d = alpm_list_getdata(j);
+ alpm_db_t *d = alpm_list_getdata(j);
if(strcmp(repo, alpm_db_get_name(d)) == 0) {
db = d;
@@ -540,10 +522,10 @@ static int sync_list(alpm_list_t *syncs, alpm_list_t *targets)
}
if(db == NULL) {
- pm_fprintf(stderr, PM_LOG_ERROR,
+ pm_fprintf(stderr, ALPM_LOG_ERROR,
_("repository \"%s\" was not found.\n"),repo);
alpm_list_free(ls);
- return(1);
+ return 1;
}
ls = alpm_list_add(ls, db);
@@ -553,12 +535,12 @@ static int sync_list(alpm_list_t *syncs, alpm_list_t *targets)
}
for(i = ls; i; i = alpm_list_next(i)) {
- pmdb_t *db = alpm_list_getdata(i);
+ alpm_db_t *db = alpm_list_getdata(i);
for(j = alpm_db_get_pkgcache(db); j; j = alpm_list_next(j)) {
- pmpkg_t *pkg = alpm_list_getdata(j);
+ alpm_pkg_t *pkg = alpm_list_getdata(j);
- if (!config->quiet) {
+ if(!config->quiet) {
printf("%s %s %s", alpm_db_get_name(db), alpm_pkg_get_name(pkg),
alpm_pkg_get_version(pkg));
print_installed(db_local, pkg);
@@ -573,69 +555,71 @@ static int sync_list(alpm_list_t *syncs, alpm_list_t *targets)
alpm_list_free(ls);
}
- return(0);
+ return 0;
}
static alpm_list_t *syncfirst(void) {
alpm_list_t *i, *res = NULL;
- pmdb_t *db_local = alpm_option_get_localdb();
+ alpm_db_t *db_local = alpm_option_get_localdb(config->handle);
+ alpm_list_t *syncdbs = alpm_option_get_syncdbs(config->handle);
for(i = config->syncfirst; i; i = alpm_list_next(i)) {
char *pkgname = alpm_list_getdata(i);
- pmpkg_t *pkg = alpm_db_get_pkg(db_local, pkgname);
+ alpm_pkg_t *pkg = alpm_db_get_pkg(db_local, pkgname);
if(pkg == NULL) {
continue;
}
- if(alpm_sync_newversion(pkg, alpm_option_get_syncdbs())) {
+ if(alpm_sync_newversion(pkg, syncdbs)) {
res = alpm_list_add(res, strdup(pkgname));
}
}
- return(res);
+ return res;
}
-static pmdb_t *get_db(const char *dbname)
+static alpm_db_t *get_db(const char *dbname)
{
alpm_list_t *i;
- for(i = alpm_option_get_syncdbs(); i; i = i->next) {
- pmdb_t *db = i->data;
+ for(i = alpm_option_get_syncdbs(config->handle); i; i = i->next) {
+ alpm_db_t *db = i->data;
if(strcmp(alpm_db_get_name(db), dbname) == 0) {
- return(db);
+ return db;
}
}
- return(NULL);
+ return NULL;
}
-static int process_pkg(pmpkg_t *pkg)
+static int process_pkg(alpm_pkg_t *pkg)
{
- int ret = alpm_add_pkg(pkg);
+ int ret = alpm_add_pkg(config->handle, pkg);
if(ret == -1) {
- if(pm_errno == PM_ERR_TRANS_DUP_TARGET
- || pm_errno == PM_ERR_PKG_IGNORED) {
+ enum _alpm_errno_t err = alpm_errno(config->handle);
+ if(err == ALPM_ERR_TRANS_DUP_TARGET
+ || err == ALPM_ERR_PKG_IGNORED) {
/* just skip duplicate or ignored targets */
- pm_printf(PM_LOG_WARNING, _("skipping target: %s\n"), alpm_pkg_get_name(pkg));
- return(0);
+ pm_printf(ALPM_LOG_WARNING, _("skipping target: %s\n"), alpm_pkg_get_name(pkg));
+ return 0;
} else {
- pm_fprintf(stderr, PM_LOG_ERROR, "'%s': %s\n", alpm_pkg_get_name(pkg),
- alpm_strerrorlast());
- return(1);
+ pm_fprintf(stderr, ALPM_LOG_ERROR, "'%s': %s\n", alpm_pkg_get_name(pkg),
+ alpm_strerror(err));
+ return 1;
}
}
- return(0);
+ return 0;
}
-static int process_group(alpm_list_t *dbs, char *group)
+static int process_group(alpm_list_t *dbs, const char *group)
{
int ret = 0;
alpm_list_t *i;
- alpm_list_t *pkgs = alpm_find_grp_pkgs(dbs, group);
+ alpm_list_t *pkgs = alpm_find_group_pkgs(dbs, group);
int count = alpm_list_count(pkgs);
if(!count) {
- pm_fprintf(stderr, PM_LOG_ERROR, _("target not found: %s\n"), group);
- return(1);
+ pm_fprintf(stderr, ALPM_LOG_ERROR, _("target not found: %s\n"), group);
+ return 1;
}
@@ -657,7 +641,7 @@ static int process_group(alpm_list_t *dbs, char *group)
for(i = pkgs; i; i = alpm_list_next(i)) {
if(array[n++] == 0)
continue;
- pmpkg_t *pkg = alpm_list_getdata(i);
+ alpm_pkg_t *pkg = alpm_list_getdata(i);
if(process_pkg(pkg) == 1) {
ret = 1;
@@ -668,7 +652,7 @@ static int process_group(alpm_list_t *dbs, char *group)
free(array);
} else {
for(i = pkgs; i; i = alpm_list_next(i)) {
- pmpkg_t *pkg = alpm_list_getdata(i);
+ alpm_pkg_t *pkg = alpm_list_getdata(i);
if(process_pkg(pkg) == 1) {
ret = 1;
@@ -678,28 +662,29 @@ static int process_group(alpm_list_t *dbs, char *group)
}
cleanup:
alpm_list_free(pkgs);
- return(ret);
+ return ret;
}
-static int process_targname(alpm_list_t *dblist, char *targname)
+static int process_targname(alpm_list_t *dblist, const char *targname)
{
- pmpkg_t *pkg = alpm_find_dbs_satisfier(dblist, targname);
+ alpm_pkg_t *pkg = alpm_find_dbs_satisfier(config->handle, dblist, targname);
- /* #FS23342 - skip ignored packages when user says no */
- if(pm_errno == PM_ERR_PKG_IGNORED) {
- pm_printf(PM_LOG_WARNING, _("skipping target: %s\n"), targname);
- pm_errno = 0;
- return(0);
+ /* #FS#23342 - skip ignored packages when user says no */
+ if(alpm_errno(config->handle) == ALPM_ERR_PKG_IGNORED) {
+ pm_printf(ALPM_LOG_WARNING, _("skipping target: %s\n"), targname);
+ /* TODO how to do this, we shouldn't be fucking with it from the frontend */
+ /* pm_errno = 0; */
+ return 0;
}
if(pkg) {
- return(process_pkg(pkg));
+ return process_pkg(pkg);
}
/* fallback on group */
- return(process_group(dblist, targname));
+ return process_group(dblist, targname);
}
-static int process_target(char *target)
+static int process_target(const char *target)
{
/* process targets */
char *targstring = strdup(target);
@@ -709,14 +694,14 @@ static int process_target(char *target)
alpm_list_t *dblist = NULL;
if(targname) {
- pmdb_t *db = NULL;
+ alpm_db_t *db = NULL;
*targname = '\0';
targname++;
dbname = targstring;
db = get_db(dbname);
if(!db) {
- pm_fprintf(stderr, PM_LOG_ERROR, _("database not found: %s\n"),
+ pm_fprintf(stderr, ALPM_LOG_ERROR, _("database not found: %s\n"),
dbname);
ret = 1;
goto cleanup;
@@ -726,78 +711,81 @@ static int process_target(char *target)
alpm_list_free(dblist);
} else {
targname = targstring;
- dblist = alpm_option_get_syncdbs();
+ dblist = alpm_option_get_syncdbs(config->handle);
ret = process_targname(dblist, targname);
}
cleanup:
free(targstring);
- return(ret);
+ return ret;
}
static int sync_trans(alpm_list_t *targets)
{
- int retval = 0;
- alpm_list_t *data = NULL;
- alpm_list_t *packages = NULL;
alpm_list_t *i;
/* Step 1: create a new transaction... */
- if(trans_init(config->flags) == -1) {
- return(1);
+ if(trans_init(config->flags, 1) == -1) {
+ return 1;
}
/* process targets */
for(i = targets; i; i = alpm_list_next(i)) {
char *targ = alpm_list_getdata(i);
if(process_target(targ) == 1) {
- retval = 1;
- goto cleanup;
+ trans_release();
+ return 1;
}
}
if(config->op_s_upgrade) {
printf(_(":: Starting full system upgrade...\n"));
- alpm_logaction("starting full system upgrade\n");
- if(alpm_sync_sysupgrade(config->op_s_upgrade >= 2) == -1) {
- pm_fprintf(stderr, PM_LOG_ERROR, "%s\n", alpm_strerrorlast());
- retval = 1;
- goto cleanup;
+ alpm_logaction(config->handle, "starting full system upgrade\n");
+ if(alpm_sync_sysupgrade(config->handle, config->op_s_upgrade >= 2) == -1) {
+ pm_fprintf(stderr, ALPM_LOG_ERROR, "%s\n", alpm_strerror(alpm_errno(config->handle)));
+ trans_release();
+ return 1;
}
}
+ return sync_prepare_execute();
+}
+
+int sync_prepare_execute(void)
+{
+ alpm_list_t *i, *packages, *data = NULL;
+ int retval = 0;
+
/* Step 2: "compute" the transaction based on targets and flags */
- if(alpm_trans_prepare(&data) == -1) {
- pm_fprintf(stderr, PM_LOG_ERROR, _("failed to prepare transaction (%s)\n"),
- alpm_strerrorlast());
- switch(pm_errno) {
- alpm_list_t *i;
- case PM_ERR_PKG_INVALID_ARCH:
+ if(alpm_trans_prepare(config->handle, &data) == -1) {
+ enum _alpm_errno_t err = alpm_errno(config->handle);
+ pm_fprintf(stderr, ALPM_LOG_ERROR, _("failed to prepare transaction (%s)\n"),
+ alpm_strerror(err));
+ switch(err) {
+ case ALPM_ERR_PKG_INVALID_ARCH:
for(i = data; i; i = alpm_list_next(i)) {
char *pkg = alpm_list_getdata(i);
printf(_(":: package %s does not have a valid architecture\n"), pkg);
}
break;
- case PM_ERR_UNSATISFIED_DEPS:
+ case ALPM_ERR_UNSATISFIED_DEPS:
for(i = data; i; i = alpm_list_next(i)) {
- pmdepmissing_t *miss = alpm_list_getdata(i);
- pmdepend_t *dep = alpm_miss_get_dep(miss);
- char *depstring = alpm_dep_compute_string(dep);
- printf(_(":: %s: requires %s\n"), alpm_miss_get_target(miss),
- depstring);
+ alpm_depmissing_t *miss = alpm_list_getdata(i);
+ char *depstring = alpm_dep_compute_string(miss->depend);
+ printf(_(":: %s: requires %s\n"), miss->target, depstring);
free(depstring);
}
break;
- case PM_ERR_CONFLICTING_DEPS:
+ case ALPM_ERR_CONFLICTING_DEPS:
for(i = data; i; i = alpm_list_next(i)) {
- pmconflict_t *conflict = alpm_list_getdata(i);
- const char *package1 = alpm_conflict_get_package1(conflict);
- const char *package2 = alpm_conflict_get_package2(conflict);
- const char *reason = alpm_conflict_get_reason(conflict);
+ alpm_conflict_t *conflict = alpm_list_getdata(i);
/* only print reason if it contains new information */
- if(strcmp(package1, reason) == 0 || strcmp(package2, reason) == 0) {
- printf(_(":: %s and %s are in conflict\n"), package1, package2);
+ if(strcmp(conflict->package1, conflict->reason) == 0 ||
+ strcmp(conflict->package2, conflict->reason) == 0) {
+ printf(_(":: %s and %s are in conflict\n"),
+ conflict->package1, conflict->package2);
} else {
- printf(_(":: %s and %s are in conflict (%s)\n"), package1, package2, reason);
+ printf(_(":: %s and %s are in conflict (%s)\n"),
+ conflict->package1, conflict->package2, conflict->reason);
}
}
break;
@@ -808,7 +796,7 @@ static int sync_trans(alpm_list_t *targets)
goto cleanup;
}
- packages = alpm_trans_get_add();
+ packages = alpm_trans_get_add(config->handle);
if(packages == NULL) {
/* nothing to do: just exit without complaining */
printf(_(" there is nothing to do\n"));
@@ -821,8 +809,8 @@ static int sync_trans(alpm_list_t *targets)
goto cleanup;
}
- display_targets(alpm_trans_get_remove(), 0);
- display_targets(alpm_trans_get_add(), 1);
+ display_targets(alpm_trans_get_remove(config->handle), 0);
+ display_targets(alpm_trans_get_add(config->handle), 1);
printf("\n");
int confirm;
@@ -835,31 +823,28 @@ static int sync_trans(alpm_list_t *targets)
goto cleanup;
}
- if(alpm_trans_commit(&data) == -1) {
- pm_fprintf(stderr, PM_LOG_ERROR, _("failed to commit transaction (%s)\n"),
- alpm_strerrorlast());
- switch(pm_errno) {
- alpm_list_t *i;
- case PM_ERR_FILE_CONFLICTS:
+ if(alpm_trans_commit(config->handle, &data) == -1) {
+ enum _alpm_errno_t err = alpm_errno(config->handle);
+ pm_fprintf(stderr, ALPM_LOG_ERROR, _("failed to commit transaction (%s)\n"),
+ alpm_strerror(err));
+ switch(err) {
+ case ALPM_ERR_FILE_CONFLICTS:
for(i = data; i; i = alpm_list_next(i)) {
- pmfileconflict_t *conflict = alpm_list_getdata(i);
- switch(alpm_fileconflict_get_type(conflict)) {
- case PM_FILECONFLICT_TARGET:
+ alpm_fileconflict_t *conflict = alpm_list_getdata(i);
+ switch(conflict->type) {
+ case ALPM_FILECONFLICT_TARGET:
printf(_("%s exists in both '%s' and '%s'\n"),
- alpm_fileconflict_get_file(conflict),
- alpm_fileconflict_get_target(conflict),
- alpm_fileconflict_get_ctarget(conflict));
+ conflict->file, conflict->target, conflict->ctarget);
break;
- case PM_FILECONFLICT_FILESYSTEM:
+ case ALPM_FILECONFLICT_FILESYSTEM:
printf(_("%s: %s exists in filesystem\n"),
- alpm_fileconflict_get_target(conflict),
- alpm_fileconflict_get_file(conflict));
+ conflict->target, conflict->file);
break;
}
}
break;
- case PM_ERR_PKG_INVALID:
- case PM_ERR_DLT_INVALID:
+ case ALPM_ERR_PKG_INVALID:
+ case ALPM_ERR_DLT_INVALID:
for(i = data; i; i = alpm_list_next(i)) {
char *filename = alpm_list_getdata(i);
printf(_("%s is invalid or corrupted\n"), filename);
@@ -883,7 +868,7 @@ cleanup:
retval = 1;
}
- return(retval);
+ return retval;
}
int pacman_sync(alpm_list_t *targets)
@@ -894,8 +879,8 @@ int pacman_sync(alpm_list_t *targets)
if(config->op_s_clean) {
int ret = 0;
- if(trans_init(0) == -1) {
- return(1);
+ if(trans_init(0, 0) == -1) {
+ return 1;
}
ret += sync_cleancache(config->op_s_clean);
@@ -906,60 +891,63 @@ int pacman_sync(alpm_list_t *targets)
ret++;
}
- return(ret);
+ return ret;
}
- /* ensure we have at least one valid sync db set up */
- sync_dbs = alpm_option_get_syncdbs();
- if(sync_dbs == NULL || alpm_list_count(sync_dbs) == 0) {
- pm_printf(PM_LOG_ERROR, _("no usable package repositories configured.\n"));
- return(1);
+ if(check_syncdbs(1, 0)) {
+ return 1;
}
+ sync_dbs = alpm_option_get_syncdbs(config->handle);
+
if(config->op_s_sync) {
/* grab a fresh package list */
printf(_(":: Synchronizing package databases...\n"));
- alpm_logaction("synchronizing package lists\n");
+ alpm_logaction(config->handle, "synchronizing package lists\n");
if(!sync_synctree(config->op_s_sync, sync_dbs)) {
- return(1);
+ return 1;
}
}
+ if(check_syncdbs(1, 1)) {
+ return 1;
+ }
+
/* search for a package */
if(config->op_s_search) {
- return(sync_search(sync_dbs, targets));
+ return sync_search(sync_dbs, targets);
}
/* look for groups */
if(config->group) {
- return(sync_group(config->group, sync_dbs, targets));
+ return sync_group(config->group, sync_dbs, targets);
}
/* get package info */
if(config->op_s_info) {
- return(sync_info(sync_dbs, targets));
+ return sync_info(sync_dbs, targets);
}
/* get a listing of files in sync DBs */
if(config->op_q_list) {
- return(sync_list(sync_dbs, targets));
+ return sync_list(sync_dbs, targets);
}
if(targets == NULL) {
if(config->op_s_upgrade) {
/* proceed */
} else if(config->op_s_sync) {
- return(0);
+ return 0;
} else {
/* don't proceed here unless we have an operation that doesn't require a
* target list */
- pm_printf(PM_LOG_ERROR, _("no targets specified (use -h for help)\n"));
- return(1);
+ pm_printf(ALPM_LOG_ERROR, _("no targets specified (use -h for help)\n"));
+ return 1;
}
}
alpm_list_t *targs = alpm_list_strdup(targets);
- if(!(config->flags & PM_TRANS_FLAG_DOWNLOADONLY) && !config->print) {
+ if(!(config->flags & ALPM_TRANS_FLAG_DOWNLOADONLY) && !config->print) {
/* check for newer versions of packages to be upgraded first */
alpm_list_t *packages = syncfirst();
if(packages) {
@@ -980,7 +968,7 @@ int pacman_sync(alpm_list_t *targets)
}
printf("\n");
} else {
- pm_printf(PM_LOG_DEBUG, "skipping SyncFirst dialog\n");
+ pm_printf(ALPM_LOG_DEBUG, "skipping SyncFirst dialog\n");
FREELIST(packages);
}
}
@@ -989,7 +977,7 @@ int pacman_sync(alpm_list_t *targets)
int ret = sync_trans(targs);
FREELIST(targs);
- return(ret);
+ return ret;
}
/* vim: set ts=2 sw=2 noet: */
diff --git a/src/pacman/upgrade.c b/src/pacman/upgrade.c
index 8cd29da0..e4b2e2bf 100644
--- a/src/pacman/upgrade.c
+++ b/src/pacman/upgrade.c
@@ -41,23 +41,23 @@
*/
int pacman_upgrade(alpm_list_t *targets)
{
- alpm_list_t *i, *data = NULL;
- int retval = 0;
+ alpm_list_t *i;
+ alpm_siglevel_t level = alpm_option_get_default_siglevel(config->handle);
if(targets == NULL) {
- pm_printf(PM_LOG_ERROR, _("no targets specified (use -h for help)\n"));
- return(1);
+ pm_printf(ALPM_LOG_ERROR, _("no targets specified (use -h for help)\n"));
+ return 1;
}
/* Check for URL targets and process them
*/
for(i = targets; i; i = alpm_list_next(i)) {
if(strstr(i->data, "://")) {
- char *str = alpm_fetch_pkgurl(i->data);
+ char *str = alpm_fetch_pkgurl(config->handle, i->data);
if(str == NULL) {
- pm_fprintf(stderr, PM_LOG_ERROR, "'%s': %s\n",
- (char *)i->data, alpm_strerrorlast());
- return(1);
+ pm_fprintf(stderr, ALPM_LOG_ERROR, "'%s': %s\n",
+ (char *)i->data, alpm_strerror(alpm_errno(config->handle)));
+ return 1;
} else {
free(i->data);
i->data = str;
@@ -66,144 +66,32 @@ int pacman_upgrade(alpm_list_t *targets)
}
/* Step 1: create a new transaction */
- if(trans_init(config->flags) == -1) {
- return(1);
+ if(trans_init(config->flags, 1) == -1) {
+ return 1;
}
/* add targets to the created transaction */
for(i = targets; i; i = alpm_list_next(i)) {
char *targ = alpm_list_getdata(i);
- pmpkg_t *pkg;
+ alpm_pkg_t *pkg;
- if(alpm_pkg_load(targ, 1, &pkg) != 0) {
- pm_fprintf(stderr, PM_LOG_ERROR, "'%s': %s\n",
- targ, alpm_strerrorlast());
+ if(alpm_pkg_load(config->handle, targ, 1, level, &pkg) != 0) {
+ pm_fprintf(stderr, ALPM_LOG_ERROR, "'%s': %s\n",
+ targ, alpm_strerror(alpm_errno(config->handle)));
trans_release();
- return(1);
+ return 1;
}
- if(alpm_add_pkg(pkg) == -1) {
- pm_fprintf(stderr, PM_LOG_ERROR, "'%s': %s\n",
- targ, alpm_strerrorlast());
+ if(alpm_add_pkg(config->handle, pkg) == -1) {
+ pm_fprintf(stderr, ALPM_LOG_ERROR, "'%s': %s\n",
+ targ, alpm_strerror(alpm_errno(config->handle)));
alpm_pkg_free(pkg);
trans_release();
- return(1);
+ return 1;
}
}
- /* Step 2: "compute" the transaction based on targets and flags */
- /* TODO: No, compute nothing. This is stupid. */
- if(alpm_trans_prepare(&data) == -1) {
- pm_fprintf(stderr, PM_LOG_ERROR, _("failed to prepare transaction (%s)\n"),
- alpm_strerrorlast());
- switch(pm_errno) {
- case PM_ERR_PKG_INVALID_ARCH:
- for(i = data; i; i = alpm_list_next(i)) {
- char *pkg = alpm_list_getdata(i);
- printf(_(":: package %s does not have a valid architecture\n"), pkg);
- }
- break;
- case PM_ERR_UNSATISFIED_DEPS:
- for(i = data; i; i = alpm_list_next(i)) {
- pmdepmissing_t *miss = alpm_list_getdata(i);
- pmdepend_t *dep = alpm_miss_get_dep(miss);
- char *depstring = alpm_dep_compute_string(dep);
-
- /* TODO indicate if the error was a virtual package or not:
- * :: %s: requires %s, provided by %s
- */
- printf(_(":: %s: requires %s\n"), alpm_miss_get_target(miss),
- depstring);
- free(depstring);
- }
- break;
- case PM_ERR_CONFLICTING_DEPS:
- for(i = data; i; i = alpm_list_next(i)) {
- pmconflict_t *conflict = alpm_list_getdata(i);
- const char *package1 = alpm_conflict_get_package1(conflict);
- const char *package2 = alpm_conflict_get_package2(conflict);
- const char *reason = alpm_conflict_get_reason(conflict);
- /* only print reason if it contains new information */
- if(strcmp(package1, reason) == 0 || strcmp(package2, reason) == 0) {
- printf(_(":: %s and %s are in conflict\n"), package1, package2);
- } else {
- printf(_(":: %s and %s are in conflict (%s)\n"), package1, package2, reason);
- }
- }
- break;
- default:
- break;
- }
- trans_release();
- FREELIST(data);
- return(1);
- }
-
- /* Step 3: perform the installation */
-
- if(config->print) {
- print_packages(alpm_trans_get_add());
- trans_release();
- return(0);
- }
-
- /* print targets and ask user confirmation */
- alpm_list_t *packages = alpm_trans_get_add();
- if(packages == NULL) { /* we are done */
- printf(_(" there is nothing to do\n"));
- trans_release();
- return(retval);
- }
- display_targets(alpm_trans_get_remove(), 0);
- display_targets(alpm_trans_get_add(), 1);
- printf("\n");
- int confirm = yesno(_("Proceed with installation?"));
- if(!confirm) {
- trans_release();
- return(retval);
- }
-
- if(alpm_trans_commit(&data) == -1) {
- pm_fprintf(stderr, PM_LOG_ERROR, _("failed to commit transaction (%s)\n"),
- alpm_strerrorlast());
- switch(pm_errno) {
- alpm_list_t *i;
- case PM_ERR_FILE_CONFLICTS:
- for(i = data; i; i = alpm_list_next(i)) {
- pmfileconflict_t *conflict = alpm_list_getdata(i);
- switch(alpm_fileconflict_get_type(conflict)) {
- case PM_FILECONFLICT_TARGET:
- printf(_("%s exists in both '%s' and '%s'\n"),
- alpm_fileconflict_get_file(conflict),
- alpm_fileconflict_get_target(conflict),
- alpm_fileconflict_get_ctarget(conflict));
- break;
- case PM_FILECONFLICT_FILESYSTEM:
- printf(_("%s: %s exists in filesystem\n"),
- alpm_fileconflict_get_target(conflict),
- alpm_fileconflict_get_file(conflict));
- break;
- }
- }
- break;
- case PM_ERR_PKG_INVALID:
- case PM_ERR_DLT_INVALID:
- for(i = data; i; i = alpm_list_next(i)) {
- char *filename = alpm_list_getdata(i);
- printf(_("%s is invalid or corrupted\n"), filename);
- }
- break;
- default:
- break;
- }
- FREELIST(data);
- trans_release();
- return(1);
- }
-
- if(trans_release() == -1) {
- retval = 1;
- }
- return(retval);
+ /* now that targets are resolved, we can hand it all off to the sync code */
+ return sync_prepare_execute();
}
/* vim: set ts=2 sw=2 noet: */
diff --git a/src/pacman/util.c b/src/pacman/util.c
index 53dbd637..e8c0a299 100644
--- a/src/pacman/util.c
+++ b/src/pacman/util.c
@@ -31,12 +31,14 @@
#include <stdint.h> /* intmax_t */
#include <string.h>
#include <errno.h>
-#include <fcntl.h>
#include <ctype.h>
#include <dirent.h>
#include <unistd.h>
#include <limits.h>
#include <wchar.h>
+#ifdef HAVE_TERMIOS_H
+#include <termios.h> /* tcflush */
+#endif
#include <alpm.h>
#include <alpm_list.h>
@@ -47,74 +49,121 @@
#include "callback.h"
-int trans_init(pmtransflag_t flags)
+int trans_init(alpm_transflag_t flags, int check_valid)
{
int ret;
+
+ check_syncdbs(0, check_valid);
+
if(config->print) {
- ret = alpm_trans_init(flags, NULL, NULL, NULL);
+ ret = alpm_trans_init(config->handle, flags, NULL, NULL, NULL);
} else {
- ret = alpm_trans_init(flags, cb_trans_evt, cb_trans_conv,
+ ret = alpm_trans_init(config->handle, flags, cb_trans_evt, cb_trans_conv,
cb_trans_progress);
}
if(ret == -1) {
- pm_fprintf(stderr, PM_LOG_ERROR, _("failed to init transaction (%s)\n"),
- alpm_strerrorlast());
- if(pm_errno == PM_ERR_HANDLE_LOCK) {
+ enum _alpm_errno_t err = alpm_errno(config->handle);
+ pm_fprintf(stderr, ALPM_LOG_ERROR, _("failed to init transaction (%s)\n"),
+ alpm_strerror(err));
+ if(err == ALPM_ERR_HANDLE_LOCK) {
fprintf(stderr, _(" if you're sure a package manager is not already\n"
- " running, you can remove %s\n"), alpm_option_get_lockfile());
- }
- else if(pm_errno == PM_ERR_DB_VERSION) {
- fprintf(stderr, _(" try running pacman-db-upgrade\n"));
+ " running, you can remove %s\n"),
+ alpm_option_get_lockfile(config->handle));
}
- return(-1);
+ return -1;
}
- return(0);
+ return 0;
}
int trans_release(void)
{
- if(alpm_trans_release() == -1) {
- pm_fprintf(stderr, PM_LOG_ERROR, _("failed to release transaction (%s)\n"),
- alpm_strerrorlast());
- return(-1);
+ if(alpm_trans_release(config->handle) == -1) {
+ pm_fprintf(stderr, ALPM_LOG_ERROR, _("failed to release transaction (%s)\n"),
+ alpm_strerror(alpm_errno(config->handle)));
+ return -1;
}
- return(0);
+ return 0;
}
int needs_root(void)
{
switch(config->op) {
case PM_OP_DATABASE:
- return(1);
+ return 1;
case PM_OP_UPGRADE:
case PM_OP_REMOVE:
- return(!config->print);
+ return !config->print;
case PM_OP_SYNC:
- return(config->op_s_clean || config->op_s_sync ||
+ return (config->op_s_clean || config->op_s_sync ||
(!config->group && !config->op_s_info && !config->op_q_list &&
!config->op_s_search && !config->print));
default:
- return(0);
+ return 0;
+ }
+}
+
+int check_syncdbs(size_t need_repos, int check_valid)
+{
+ int ret = 0;
+ alpm_list_t *i;
+ alpm_list_t *sync_dbs = alpm_option_get_syncdbs(config->handle);
+
+ if(need_repos && sync_dbs == NULL) {
+ pm_printf(ALPM_LOG_ERROR, _("no usable package repositories configured.\n"));
+ return 1;
+ }
+
+ if(check_valid) {
+ /* ensure all known dbs are valid */
+ for(i = sync_dbs; i; i = alpm_list_next(i)) {
+ alpm_db_t *db = i->data;
+ if(alpm_db_get_valid(db)) {
+ pm_printf(ALPM_LOG_ERROR, _("database '%s' is not valid (%s)\n"),
+ alpm_db_get_name(db), alpm_strerror(alpm_errno(config->handle)));
+ ret = 1;
+ }
+ }
+ }
+ return ret;
+}
+
+/* discard unhandled input on the terminal's input buffer */
+static int flush_term_input(void) {
+#ifdef HAVE_TCFLUSH
+ if(isatty(fileno(stdin))) {
+ return tcflush(fileno(stdin), TCIFLUSH);
}
+#endif
+
+ /* fail silently */
+ return 0;
}
/* gets the current screen column width */
-int getcols(int def)
+int getcols()
{
+ int termwidth = -1;
+ const int default_tty = 80;
+ const int default_notty = 0;
+
+ if(!isatty(fileno(stdout))) {
+ return default_notty;
+ }
+
#ifdef TIOCGSIZE
struct ttysize win;
if(ioctl(1, TIOCGSIZE, &win) == 0) {
- return win.ts_cols;
+ termwidth = win.ts_cols;
}
#elif defined(TIOCGWINSZ)
struct winsize win;
if(ioctl(1, TIOCGWINSZ, &win) == 0) {
- return win.ws_col;
+ termwidth = win.ws_col;
}
#endif
- return def;
+ return termwidth <= 0 ? default_tty : termwidth;
}
/* does the same thing as 'rm -rf' */
@@ -125,24 +174,24 @@ int rmrf(const char *path)
DIR *dirp;
if(!unlink(path)) {
- return(0);
+ return 0;
} else {
if(errno == ENOENT) {
- return(0);
+ return 0;
} else if(errno == EPERM) {
/* fallthrough */
} else if(errno == EISDIR) {
/* fallthrough */
} else if(errno == ENOTDIR) {
- return(1);
+ return 1;
} else {
/* not a directory */
- return(1);
+ return 1;
}
dirp = opendir(path);
if(!dirp) {
- return(1);
+ return 1;
}
for(dp = readdir(dirp); dp != NULL; dp = readdir(dirp)) {
if(dp->d_ino) {
@@ -157,7 +206,7 @@ int rmrf(const char *path)
if(rmdir(path)) {
errflag++;
}
- return(errflag);
+ return errflag;
}
}
@@ -170,9 +219,9 @@ const char *mbasename(const char *path)
{
const char *last = strrchr(path, '/');
if(last) {
- return(last + 1);
+ return last + 1;
}
- return(path);
+ return path;
}
/** Parse the dirname of a program from a path.
@@ -187,7 +236,7 @@ char *mdirname(const char *path)
/* null or empty path */
if(path == NULL || path == '\0') {
- return(strdup("."));
+ return strdup(".");
}
ret = strdup(path);
@@ -196,11 +245,11 @@ char *mdirname(const char *path)
if(last != NULL) {
/* we found a '/', so terminate our string */
*last = '\0';
- return(ret);
+ return ret;
}
/* no slash found */
free(ret);
- return(strdup("."));
+ return strdup(".");
}
/* output a string, but wrap words properly with a specified indentation
@@ -210,7 +259,7 @@ void indentprint(const char *str, int indent)
wchar_t *wcstr;
const wchar_t *p;
int len, cidx;
- const int cols = getcols(0);
+ const int cols = getcols();
if(!str) {
return;
@@ -286,7 +335,7 @@ char *strtrim(char *str)
if(str == NULL || *str == '\0') {
/* string is empty, so we're done. */
- return(str);
+ return str;
}
while(isspace((unsigned char)*pch)) {
@@ -298,7 +347,7 @@ char *strtrim(char *str)
/* check if there wasn't anything but whitespace in the string. */
if(*str == '\0') {
- return(str);
+ return str;
}
pch = (str + (strlen(str) - 1));
@@ -307,7 +356,7 @@ char *strtrim(char *str)
}
*++pch = '\0';
- return(str);
+ return str;
}
/* Replace all occurances of 'needle' with 'replace' in 'str', returning
@@ -321,7 +370,7 @@ char *strreplace(const char *str, const char *needle, const char *replace)
size_t newsz;
if(!str) {
- return(NULL);
+ return NULL;
}
p = str;
@@ -334,28 +383,27 @@ char *strreplace(const char *str, const char *needle, const char *replace)
/* no occurences of needle found */
if(!list) {
- return(strdup(str));
+ return strdup(str);
}
/* size of new string = size of old string + "number of occurences of needle"
* x "size difference between replace and needle" */
newsz = strlen(str) + 1 +
alpm_list_count(list) * (replacesz - needlesz);
- newstr = malloc(newsz);
+ newstr = calloc(newsz, sizeof(char));
if(!newstr) {
- return(NULL);
+ return NULL;
}
- *newstr = '\0';
p = str;
newp = newstr;
for(i = list; i; i = alpm_list_next(i)) {
q = alpm_list_getdata(i);
- if(q > p){
+ if(q > p) {
/* add chars between this occurence and last occurence, if any */
- strncpy(newp, p, (size_t)(q - p));
+ memcpy(newp, p, (size_t)(q - p));
newp += q - p;
}
- strncpy(newp, replace, replacesz);
+ memcpy(newp, replace, replacesz);
newp += replacesz;
p = q + needlesz;
}
@@ -364,11 +412,9 @@ char *strreplace(const char *str, const char *needle, const char *replace)
if(*p) {
/* add the rest of 'p' */
strcpy(newp, p);
- newp += strlen(p);
}
- *newp = '\0';
- return(newstr);
+ return newstr;
}
/** Splits a string into a list of strings using the chosen character as
@@ -388,7 +434,7 @@ alpm_list_t *strsplit(const char *str, const char splitchar)
while((str = strchr(str, splitchar))) {
dup = strndup(prev, (size_t)(str - prev));
if(dup == NULL) {
- return(NULL);
+ return NULL;
}
list = alpm_list_add(list, dup);
@@ -398,11 +444,11 @@ alpm_list_t *strsplit(const char *str, const char splitchar)
dup = strdup(prev);
if(dup == NULL) {
- return(NULL);
+ return NULL;
}
list = alpm_list_add(list, dup);
- return(list);
+ return list;
}
static int string_length(const char *s)
@@ -411,7 +457,7 @@ static int string_length(const char *s)
wchar_t *wcstr;
if(!s) {
- return(0);
+ return 0;
}
/* len goes from # bytes -> # chars -> # cols */
len = strlen(s) + 1;
@@ -420,7 +466,7 @@ static int string_length(const char *s)
len = wcswidth(wcstr, len);
free(wcstr);
- return(len);
+ return len;
}
void string_display(const char *title, const char *string)
@@ -438,6 +484,117 @@ void string_display(const char *title, const char *string)
printf("\n");
}
+static void table_print_line(const alpm_list_t *line,
+ const alpm_list_t *formats)
+{
+ const alpm_list_t *curformat = formats;
+ const alpm_list_t *curcell = line;
+
+ while(curcell && curformat) {
+ printf(alpm_list_getdata(curformat), alpm_list_getdata(curcell));
+ curcell = alpm_list_next(curcell);
+ curformat = alpm_list_next(curformat);
+ }
+
+ printf("\n");
+}
+
+/* creates format strings by checking max cell lengths in cols */
+static alpm_list_t *table_create_format(const alpm_list_t *header,
+ const alpm_list_t *rows)
+{
+ alpm_list_t *longest_str, *longest_strs = NULL;
+ alpm_list_t *formats = NULL;
+ const alpm_list_t *i, *row, *cell;
+ char *str, *formatstr;
+ const int padding = 2;
+ int colwidth, totalwidth = 0;
+ int curcol = 0;
+
+ /* header determines column count and initial values of longest_strs */
+ for(i = header; i; i = alpm_list_next(i)) {
+ longest_strs = alpm_list_add(longest_strs, alpm_list_getdata(i));
+ }
+
+ /* now find the longest string in each column */
+ for(longest_str = longest_strs; longest_str;
+ longest_str = alpm_list_next(longest_str), curcol++) {
+ for(i = rows; i; i = alpm_list_next(i)) {
+ row = alpm_list_getdata(i);
+ cell = alpm_list_nth(row, curcol);
+ str = alpm_list_getdata(cell);
+
+ if(strlen(str) > strlen(alpm_list_getdata(longest_str))) {
+ longest_str->data = str;
+ }
+ }
+ }
+
+ /* now use the column width info to generate format strings */
+ for(i = longest_strs; i; i = alpm_list_next(i)) {
+ const char *display;
+ colwidth = strlen(alpm_list_getdata(i)) + padding;
+ totalwidth += colwidth;
+
+ /* right align the last column for a cleaner table display */
+ display = (alpm_list_next(i) != NULL) ? "%%-%ds" : "%%%ds";
+ pm_asprintf(&formatstr, display, colwidth);
+
+ formats = alpm_list_add(formats, formatstr);
+ }
+
+ alpm_list_free(longest_strs);
+
+ /* return NULL if terminal is not wide enough */
+ if(totalwidth > getcols()) {
+ fprintf(stderr, _("insufficient columns available for table display\n"));
+ FREELIST(formats);
+ return NULL;
+ }
+
+ return formats;
+}
+
+/** Displays the list in table format
+ *
+ * @param title the tables title
+ * @param header the column headers. column count is determined by the nr
+ * of headers
+ * @param rows the rows to display as a list of lists of strings. the outer
+ * list represents the rows, the inner list the cells (= columns)
+ *
+ * @return -1 if not enough terminal cols available, else 0
+ */
+int table_display(const char *title, const alpm_list_t *header,
+ const alpm_list_t *rows)
+{
+ const alpm_list_t *i;
+ alpm_list_t *formats;
+
+ if(rows == NULL || header == NULL) {
+ return 0;
+ }
+
+ formats = table_create_format(header, rows);
+ if(formats == NULL) {
+ return -1;
+ }
+
+ if(title != NULL) {
+ printf("%s\n\n", title);
+ }
+
+ table_print_line(header, formats);
+ printf("\n");
+
+ for(i = rows; i; i = alpm_list_next(i)) {
+ table_print_line(alpm_list_getdata(i), formats);
+ }
+
+ FREELIST(formats);
+ return 0;
+}
+
void list_display(const char *title, const alpm_list_t *list)
{
const alpm_list_t *i;
@@ -451,13 +608,13 @@ void list_display(const char *title, const alpm_list_t *list)
if(!list) {
printf("%s\n", _("None"));
} else {
- const int maxcols = getcols(0);
+ const int maxcols = getcols();
int cols = len;
const char *str = alpm_list_getdata(list);
printf("%s", str);
cols += string_length(str);
for(i = alpm_list_next(list); i; i = alpm_list_next(i)) {
- const char *str = alpm_list_getdata(i);
+ str = alpm_list_getdata(i);
int s = string_length(str);
/* wrap only if we have enough usable column space */
if(maxcols > len && cols + s + 2 >= maxcols) {
@@ -467,7 +624,7 @@ void list_display(const char *title, const alpm_list_t *list)
for (j = 1; j <= len; j++) {
printf(" ");
}
- } else if (cols != len) {
+ } else if(cols != len) {
/* 2 spaces are added if this is not the first element on a line. */
printf(" ");
cols += 2;
@@ -481,7 +638,6 @@ void list_display(const char *title, const alpm_list_t *list)
void list_display_linebreak(const char *title, const alpm_list_t *list)
{
- const alpm_list_t *i;
int len = 0;
if(title) {
@@ -492,6 +648,7 @@ void list_display_linebreak(const char *title, const alpm_list_t *list)
if(!list) {
printf("%s\n", _("None"));
} else {
+ const alpm_list_t *i;
/* Print the first element */
indentprint((const char *) alpm_list_getdata(list), len);
printf("\n");
@@ -506,102 +663,283 @@ void list_display_linebreak(const char *title, const alpm_list_t *list)
}
}
}
+
+void signature_display(const char *title, alpm_sigresult_t *result)
+{
+ int len = 0;
+
+ if(title) {
+ len = string_length(title) + 1;
+ printf("%s ", title);
+ }
+ if(result->count == 0) {
+ printf(_("None"));
+ } else {
+ int i;
+ for(i = 0; i < result->count; i++) {
+ char sigline[PATH_MAX];
+ const char *status, *validity, *name;
+ /* Don't re-indent the first result */
+ if(i != 0) {
+ int j;
+ for(j = 1; j <= len; j++) {
+ printf(" ");
+ }
+ }
+ switch(result->status[i]) {
+ case ALPM_SIGSTATUS_VALID:
+ status = _("Valid");
+ break;
+ case ALPM_SIGSTATUS_KEY_EXPIRED:
+ status = _("Key expired");
+ break;
+ case ALPM_SIGSTATUS_SIG_EXPIRED:
+ status = _("Expired");
+ break;
+ case ALPM_SIGSTATUS_INVALID:
+ status = _("Invalid");
+ break;
+ case ALPM_SIGSTATUS_KEY_UNKNOWN:
+ status = _("Key unknown");
+ break;
+ default:
+ status = _("Signature error");
+ break;
+ }
+ switch(result->validity[i]) {
+ case ALPM_SIGVALIDITY_FULL:
+ validity = _("fully trusted");
+ break;
+ case ALPM_SIGVALIDITY_MARGINAL:
+ validity = _("marginal trusted");
+ break;
+ case ALPM_SIGVALIDITY_NEVER:
+ validity = _("never trusted");
+ break;
+ case ALPM_SIGVALIDITY_UNKNOWN:
+ default:
+ validity = _("unknown trust");
+ break;
+ }
+ name = result->uid[i] ? result->uid[i] : _("{Key Unknown}");
+ snprintf(sigline, PATH_MAX, _("%s, %s from \"%s\""),
+ status, validity, name);
+ indentprint(sigline, len);
+ printf("\n");
+ }
+ }
+}
+
+/* creates a header row for use with table_display */
+static alpm_list_t *create_verbose_header(int install)
+{
+ alpm_list_t *res = NULL;
+ char *str;
+
+ pm_asprintf(&str, "%s", _("Name"));
+ res = alpm_list_add(res, str);
+ pm_asprintf(&str, "%s", _("Old Version"));
+ res = alpm_list_add(res, str);
+ if(install) {
+ pm_asprintf(&str, "%s", _("New Version"));
+ res = alpm_list_add(res, str);
+ }
+ pm_asprintf(&str, "%s", _("Size"));
+ res = alpm_list_add(res, str);
+
+ return res;
+}
+
+/* returns package info as list of strings */
+static alpm_list_t *create_verbose_row(alpm_pkg_t *pkg, int install)
+{
+ char *str;
+ double size;
+ const char *label;
+ alpm_list_t *ret = NULL;
+ alpm_db_t *ldb = alpm_option_get_localdb(config->handle);
+
+ /* a row consists of the package name, */
+ pm_asprintf(&str, "%s", alpm_pkg_get_name(pkg));
+ ret = alpm_list_add(ret, str);
+
+ /* old and new versions */
+ if(install) {
+ alpm_pkg_t *oldpkg = alpm_db_get_pkg(ldb, alpm_pkg_get_name(pkg));
+ pm_asprintf(&str, "%s",
+ oldpkg != NULL ? alpm_pkg_get_version(oldpkg) : "");
+ ret = alpm_list_add(ret, str);
+ }
+
+ pm_asprintf(&str, "%s", alpm_pkg_get_version(pkg));
+ ret = alpm_list_add(ret, str);
+
+ /* and size */
+ size = humanize_size(alpm_pkg_get_size(pkg), 'M', 1, &label);
+ pm_asprintf(&str, "%.2f %s", size, label);
+ ret = alpm_list_add(ret, str);
+
+ return ret;
+}
+
/* prepare a list of pkgs to display */
void display_targets(const alpm_list_t *pkgs, int install)
{
char *str;
+ const char *title, *label;
+ double size;
const alpm_list_t *i;
- off_t isize = 0, dlsize = 0;
- double mbisize = 0.0, mbdlsize = 0.0;
- alpm_list_t *targets = NULL;
+ off_t isize = 0, rsize = 0, dlsize = 0;
+ alpm_list_t *j, *lp, *header = NULL, *targets = NULL;
+ alpm_db_t *db_local = alpm_option_get_localdb(config->handle);
if(!pkgs) {
return;
}
- printf("\n");
+ /* gather pkg infos */
for(i = pkgs; i; i = alpm_list_next(i)) {
- pmpkg_t *pkg = alpm_list_getdata(i);
+ alpm_pkg_t *pkg = alpm_list_getdata(i);
if(install) {
+ alpm_pkg_t *lpkg = alpm_db_get_pkg(db_local, alpm_pkg_get_name(pkg));
dlsize += alpm_pkg_download_size(pkg);
+ if(lpkg) {
+ /* add up size of all removed packages */
+ rsize += alpm_pkg_get_isize(lpkg);
+ }
}
isize += alpm_pkg_get_isize(pkg);
- /* print the package size with the output if ShowSize option set */
- if(config->showsize) {
- double mbsize = (double)alpm_pkg_get_size(pkg) / (1024.0 * 1024.0);
-
- pm_asprintf(&str, "%s-%s [%.2f MB]", alpm_pkg_get_name(pkg),
- alpm_pkg_get_version(pkg), mbsize);
+ if(config->verbosepkglists) {
+ targets = alpm_list_add(targets, create_verbose_row(pkg, install));
} else {
pm_asprintf(&str, "%s-%s", alpm_pkg_get_name(pkg),
alpm_pkg_get_version(pkg));
+ targets = alpm_list_add(targets, str);
}
- targets = alpm_list_add(targets, str);
}
- /* Convert byte sizes to MB */
- mbdlsize = (double)dlsize / (1024.0 * 1024.0);
- mbisize = (double)isize / (1024.0 * 1024.0);
+ /* print to screen */
+ title = install ? _("Targets (%d):") : _("Remove (%d):");
+ pm_asprintf(&str, title, alpm_list_count(pkgs));
- if(install) {
- pm_asprintf(&str, _("Targets (%d):"), alpm_list_count(targets));
- list_display(str, targets);
- free(str);
- printf("\n");
-
- printf(_("Total Download Size: %.2f MB\n"), mbdlsize);
- if(!(config->flags & PM_TRANS_FLAG_DOWNLOADONLY)) {
- printf(_("Total Installed Size: %.2f MB\n"), mbisize);
+ printf("\n");
+ if(config->verbosepkglists) {
+ header = create_verbose_header(install);
+ if(table_display(str, header, targets) != 0) {
+ config->verbosepkglists = 0;
+ display_targets(pkgs, install);
+ goto out;
}
} else {
- pm_asprintf(&str, _("Remove (%d):"), alpm_list_count(targets));
list_display(str, targets);
- free(str);
- printf("\n");
+ }
+ printf("\n");
- printf(_("Total Removed Size: %.2f MB\n"), mbisize);
+ if(install) {
+ size = humanize_size(dlsize, 'M', 1, &label);
+ printf(_("Total Download Size: %.2f %s\n"), size, label);
+ if(!(config->flags & ALPM_TRANS_FLAG_DOWNLOADONLY)) {
+ size = humanize_size(isize, 'M', 1, &label);
+ printf(_("Total Installed Size: %.2f %s\n"), size, label);
+ /* only show this net value if different from raw installed size */
+ if(rsize > 0) {
+ size = humanize_size(isize - rsize, 'M', 1, &label);
+ printf(_("Net Upgrade Size: %.2f %s\n"), size, label);
+ }
+ }
+ } else {
+ size = humanize_size(isize, 'M', 1, &label);
+ printf(_("Total Removed Size: %.2f %s\n"), size, label);
}
- FREELIST(targets);
+out:
+ /* cleanup */
+ if(config->verbosepkglists) {
+ /* targets is a list of lists of strings, free inner lists here */
+ for(j = targets; j; j = alpm_list_next(j)) {
+ lp = alpm_list_getdata(j);
+ FREELIST(lp);
+ }
+ alpm_list_free(targets);
+ FREELIST(header);
+ } else {
+ FREELIST(targets);
+ }
+ free(str);
}
-static off_t pkg_get_size(pmpkg_t *pkg)
+static off_t pkg_get_size(alpm_pkg_t *pkg)
{
switch(config->op) {
case PM_OP_SYNC:
- return(alpm_pkg_download_size(pkg));
+ return alpm_pkg_download_size(pkg);
case PM_OP_UPGRADE:
- return(alpm_pkg_get_size(pkg));
+ return alpm_pkg_get_size(pkg);
default:
- return(alpm_pkg_get_isize(pkg));
+ return alpm_pkg_get_isize(pkg);
}
}
-static char *pkg_get_location(pmpkg_t *pkg)
+static char *pkg_get_location(alpm_pkg_t *pkg)
{
- pmdb_t *db;
- const char *dburl;
- char *string;
+ alpm_list_t *servers;
+ char *string = NULL;
switch(config->op) {
case PM_OP_SYNC:
- db = alpm_pkg_get_db(pkg);
- dburl = alpm_db_get_url(db);
- if(dburl) {
- char *pkgurl = NULL;
- pm_asprintf(&pkgurl, "%s/%s", dburl, alpm_pkg_get_filename(pkg));
- return(pkgurl);
+ servers = alpm_db_get_servers(alpm_pkg_get_db(pkg));
+ if(servers) {
+ pm_asprintf(&string, "%s/%s", alpm_list_getdata(servers),
+ alpm_pkg_get_filename(pkg));
+ return string;
}
case PM_OP_UPGRADE:
- return(strdup(alpm_pkg_get_filename(pkg)));
+ return strdup(alpm_pkg_get_filename(pkg));
default:
- string = NULL;
pm_asprintf(&string, "%s-%s", alpm_pkg_get_name(pkg), alpm_pkg_get_version(pkg));
- return(string);
+ return string;
}
}
+/** Converts sizes in bytes into human readable units.
+ *
+ * @param bytes the size in bytes
+ * @param target_unit '\0' or a short label. If equal to one of the short unit
+ * labels ('B', 'K', ...) bytes is converted to target_unit; if '\0', the first
+ * unit which will bring the value to below a threshold of 2048 will be chosen.
+ * @param long_labels whether to use short ("K") or long ("KiB") unit labels
+ * @param label will be set to the appropriate unit label
+ *
+ * @return the size in the appropriate unit
+ */
+double humanize_size(off_t bytes, const char target_unit, int long_labels,
+ const char **label)
+{
+ static const char *shortlabels[] = {"B", "K", "M", "G", "T", "P"};
+ static const char *longlabels[] = {"B", "KiB", "MiB", "GiB", "TiB", "PiB"};
+ static const int unitcount = sizeof(shortlabels) / sizeof(shortlabels[0]);
+
+ const char **labels = long_labels ? longlabels : shortlabels;
+ double val = (double)bytes;
+ int index;
+
+ for(index = 0; index < unitcount - 1; index++) {
+ if(target_unit != '\0' && shortlabels[index][0] == target_unit) {
+ break;
+ } else if(target_unit == '\0' && val <= 2048.0 && val >= -2048.0) {
+ break;
+ }
+ val /= 1024.0;
+ }
+
+ if(label) {
+ *label = labels[index];
+ }
+
+ return val;
+}
+
void print_packages(const alpm_list_t *packages)
{
const alpm_list_t *i;
@@ -609,7 +947,7 @@ void print_packages(const alpm_list_t *packages)
config->print_format = strdup("%l");
}
for(i = packages; i; i = alpm_list_next(i)) {
- pmpkg_t *pkg = alpm_list_getdata(i);
+ alpm_pkg_t *pkg = alpm_list_getdata(i);
char *string = strdup(config->print_format);
char *temp = string;
/* %n : pkgname */
@@ -635,7 +973,7 @@ void print_packages(const alpm_list_t *packages)
/* %r : repo */
if(strstr(temp,"%r")) {
const char *repo = "local";
- pmdb_t *db = alpm_pkg_get_db(pkg);
+ alpm_db_t *db = alpm_pkg_get_db(pkg);
if(db) {
repo = alpm_db_get_name(db);
}
@@ -660,10 +998,10 @@ void print_packages(const alpm_list_t *packages)
* alpm "compare func" signature */
int str_cmp(const void *s1, const void *s2)
{
- return(strcmp(s1, s2));
+ return strcmp(s1, s2);
}
-void display_new_optdepends(pmpkg_t *oldpkg, pmpkg_t *newpkg)
+void display_new_optdepends(alpm_pkg_t *oldpkg, alpm_pkg_t *newpkg)
{
alpm_list_t *old = alpm_pkg_get_optdepends(oldpkg);
alpm_list_t *new = alpm_pkg_get_optdepends(newpkg);
@@ -675,7 +1013,7 @@ void display_new_optdepends(pmpkg_t *oldpkg, pmpkg_t *newpkg)
alpm_list_free(optdeps);
}
-void display_optdepends(pmpkg_t *pkg)
+void display_optdepends(alpm_pkg_t *pkg)
{
alpm_list_t *optdeps = alpm_pkg_get_optdepends(pkg);
if(optdeps) {
@@ -702,8 +1040,8 @@ void select_display(const alpm_list_t *pkglist)
const char *dbname = NULL;
for (i = pkglist; i; i = i->next) {
- pmpkg_t *pkg = alpm_list_getdata(i);
- pmdb_t *db = alpm_pkg_get_db(pkg);
+ alpm_pkg_t *pkg = alpm_list_getdata(i);
+ alpm_db_t *db = alpm_pkg_get_db(pkg);
if(!dbname)
dbname = alpm_db_get_name(db);
@@ -729,13 +1067,13 @@ static int parseindex(char *s, int *val, int min, int max)
if(n < min || n > max) {
fprintf(stderr, _("Invalid value: %d is not between %d and %d\n"),
n, min, max);
- return(-1);
+ return -1;
}
*val = n;
- return(0);
+ return 0;
} else {
fprintf(stderr, _("Invalid number: %s\n"), s);
- return(-1);
+ return -1;
}
}
@@ -749,7 +1087,7 @@ static int multiselect_parse(char *array, int count, char *response)
char *ends = NULL;
char *starts = strtok_r(str, " ", &saveptr);
- if (starts == NULL) {
+ if(starts == NULL) {
break;
}
strtrim(starts);
@@ -757,7 +1095,7 @@ static int multiselect_parse(char *array, int count, char *response)
if(len == 0)
continue;
- if (*starts == '^') {
+ if(*starts == '^') {
starts++;
len--;
include = 0;
@@ -776,14 +1114,14 @@ static int multiselect_parse(char *array, int count, char *response)
}
if(parseindex(starts, &start, 1, count) != 0)
- return(-1);
+ return -1;
if(!ends) {
array[start-1] = include;
} else {
int d;
if(parseindex(ends, &end, start, count) != 0) {
- return(-1);
+ return -1;
}
for(d = start; d <= end; d++) {
array[d-1] = include;
@@ -791,7 +1129,7 @@ static int multiselect_parse(char *array, int count, char *response)
}
}
- return(0);
+ return 0;
}
int multiselect_question(char *array, int count)
@@ -828,6 +1166,8 @@ int multiselect_question(char *array, int count)
break;
}
+ flush_term_input();
+
if(fgets(response, response_len, stdin)) {
const size_t response_incr = 64;
/* handle buffer not being large enough to read full line case */
@@ -861,7 +1201,7 @@ int multiselect_question(char *array, int count)
}
free(response);
- return(0);
+ return 0;
}
int select_question(int count)
@@ -887,19 +1227,21 @@ int select_question(int count)
break;
}
+ flush_term_input();
+
if(fgets(response, sizeof(response), stdin)) {
strtrim(response);
if(strlen(response) > 0) {
int n;
if(parseindex(response, &n, 1, count) != 0)
continue;
- return(n-1);
+ return (n - 1);
}
}
break;
}
- return(preset-1);
+ return (preset - 1);
}
@@ -930,23 +1272,25 @@ static int question(short preset, char *fmt, va_list args)
if(config->noconfirm) {
fprintf(stream, "\n");
- return(preset);
+ return preset;
}
fflush(stream);
+ flush_term_input();
+
if(fgets(response, sizeof(response), stdin)) {
strtrim(response);
if(strlen(response) == 0) {
- return(preset);
+ return preset;
}
if(strcasecmp(response, _("Y")) == 0 || strcasecmp(response, _("YES")) == 0) {
- return(1);
- } else if (strcasecmp(response, _("N")) == 0 || strcasecmp(response, _("NO")) == 0) {
- return(0);
+ return 1;
+ } else if(strcasecmp(response, _("N")) == 0 || strcasecmp(response, _("NO")) == 0) {
+ return 0;
}
}
- return(0);
+ return 0;
}
int yesno(char *fmt, ...)
@@ -958,7 +1302,7 @@ int yesno(char *fmt, ...)
ret = question(1, fmt, args);
va_end(args);
- return(ret);
+ return ret;
}
int noyes(char *fmt, ...)
@@ -970,10 +1314,10 @@ int noyes(char *fmt, ...)
ret = question(0, fmt, args);
va_end(args);
- return(ret);
+ return ret;
}
-int pm_printf(pmloglevel_t level, const char *format, ...)
+int pm_printf(alpm_loglevel_t level, const char *format, ...)
{
int ret;
va_list args;
@@ -983,10 +1327,10 @@ int pm_printf(pmloglevel_t level, const char *format, ...)
ret = pm_vfprintf(stdout, level, format, args);
va_end(args);
- return(ret);
+ return ret;
}
-int pm_fprintf(FILE *stream, pmloglevel_t level, const char *format, ...)
+int pm_fprintf(FILE *stream, alpm_loglevel_t level, const char *format, ...)
{
int ret;
va_list args;
@@ -996,7 +1340,7 @@ int pm_fprintf(FILE *stream, pmloglevel_t level, const char *format, ...)
ret = pm_vfprintf(stream, level, format, args);
va_end(args);
- return(ret);
+ return ret;
}
int pm_asprintf(char **string, const char *format, ...)
@@ -1007,15 +1351,15 @@ int pm_asprintf(char **string, const char *format, ...)
/* print the message using va_arg list */
va_start(args, format);
if(vasprintf(string, format, args) == -1) {
- pm_fprintf(stderr, PM_LOG_ERROR, _("failed to allocate string\n"));
+ pm_fprintf(stderr, ALPM_LOG_ERROR, _("failed to allocate string\n"));
ret = -1;
}
va_end(args);
- return(ret);
+ return ret;
}
-int pm_vasprintf(char **string, pmloglevel_t level, const char *format, va_list args)
+int pm_vasprintf(char **string, alpm_loglevel_t level, const char *format, va_list args)
{
int ret = 0;
char *msg = NULL;
@@ -1030,16 +1374,16 @@ int pm_vasprintf(char **string, pmloglevel_t level, const char *format, va_list
/* print a prefix to the message */
switch(level) {
- case PM_LOG_ERROR:
+ case ALPM_LOG_ERROR:
pm_asprintf(string, _("error: %s"), msg);
break;
- case PM_LOG_WARNING:
+ case ALPM_LOG_WARNING:
pm_asprintf(string, _("warning: %s"), msg);
break;
- case PM_LOG_DEBUG:
+ case ALPM_LOG_DEBUG:
pm_asprintf(string, "debug: %s", msg);
break;
- case PM_LOG_FUNCTION:
+ case ALPM_LOG_FUNCTION:
pm_asprintf(string, "function: %s", msg);
break;
default:
@@ -1048,10 +1392,10 @@ int pm_vasprintf(char **string, pmloglevel_t level, const char *format, va_list
}
free(msg);
- return(ret);
+ return ret;
}
-int pm_vfprintf(FILE *stream, pmloglevel_t level, const char *format, va_list args)
+int pm_vfprintf(FILE *stream, alpm_loglevel_t level, const char *format, va_list args)
{
int ret = 0;
@@ -1062,7 +1406,7 @@ int pm_vfprintf(FILE *stream, pmloglevel_t level, const char *format, va_list ar
#if defined(PACMAN_DEBUG)
/* If debug is on, we'll timestamp the output */
- if(config->logmask & PM_LOG_DEBUG) {
+ if(config->logmask & ALPM_LOG_DEBUG) {
time_t t;
struct tm *tmp;
char timestr[10] = {0};
@@ -1078,16 +1422,16 @@ int pm_vfprintf(FILE *stream, pmloglevel_t level, const char *format, va_list ar
/* print a prefix to the message */
switch(level) {
- case PM_LOG_ERROR:
+ case ALPM_LOG_ERROR:
fprintf(stream, _("error: "));
break;
- case PM_LOG_WARNING:
+ case ALPM_LOG_WARNING:
fprintf(stream, _("warning: "));
break;
- case PM_LOG_DEBUG:
+ case ALPM_LOG_DEBUG:
fprintf(stream, "debug: ");
break;
- case PM_LOG_FUNCTION:
+ case ALPM_LOG_FUNCTION:
fprintf(stream, "function: ");
break;
default:
@@ -1096,7 +1440,7 @@ int pm_vfprintf(FILE *stream, pmloglevel_t level, const char *format, va_list ar
/* print the message using va_arg list */
ret = vfprintf(stream, format, args);
- return(ret);
+ return ret;
}
#ifndef HAVE_STRNDUP
@@ -1105,7 +1449,7 @@ static size_t strnlen(const char *s, size_t max)
{
register const char *p;
for(p = s; *p && max--; ++p);
- return(p - s);
+ return (p - s);
}
char *strndup(const char *s, size_t n)
@@ -1113,11 +1457,11 @@ char *strndup(const char *s, size_t n)
size_t len = strnlen(s, n);
char *new = (char *) malloc(len + 1);
- if (new == NULL)
+ if(new == NULL)
return NULL;
new[len] = '\0';
- return (char *) memcpy(new, s, len);
+ return (char *)memcpy(new, s, len);
}
#endif
diff --git a/src/pacman/util.h b/src/pacman/util.h
index 53176fae..ee3dbd11 100644
--- a/src/pacman/util.h
+++ b/src/pacman/util.h
@@ -39,10 +39,11 @@
/* update speed for the fill_progress based functions */
#define UPDATE_SPEED_SEC 0.2f
-int trans_init(pmtransflag_t flags);
+int trans_init(alpm_transflag_t flags, int check_valid);
int trans_release(void);
int needs_root(void);
-int getcols(int def);
+int check_syncdbs(size_t need_repos, int check_valid);
+int getcols(void);
int rmrf(const char *path);
const char *mbasename(const char *path);
char *mdirname(const char *path);
@@ -52,23 +53,26 @@ char *strtrim(char *str);
char *strreplace(const char *str, const char *needle, const char *replace);
alpm_list_t *strsplit(const char *str, const char splitchar);
void string_display(const char *title, const char *string);
+double humanize_size(off_t bytes, const char target_unit, int long_labels, const char **label);
+int table_display(const char *title, const alpm_list_t *header, const alpm_list_t *rows);
void list_display(const char *title, const alpm_list_t *list);
void list_display_linebreak(const char *title, const alpm_list_t *list);
+void signature_display(const char *title, alpm_sigresult_t *result);
void display_targets(const alpm_list_t *pkgs, int install);
int str_cmp(const void *s1, const void *s2);
-void display_new_optdepends(pmpkg_t *oldpkg, pmpkg_t *newpkg);
-void display_optdepends(pmpkg_t *pkg);
+void display_new_optdepends(alpm_pkg_t *oldpkg, alpm_pkg_t *newpkg);
+void display_optdepends(alpm_pkg_t *pkg);
void print_packages(const alpm_list_t *packages);
void select_display(const alpm_list_t *pkglist);
int select_question(int count);
int multiselect_question(char *array, int count);
int yesno(char *fmt, ...);
int noyes(char *fmt, ...);
-int pm_printf(pmloglevel_t level, const char *format, ...) __attribute__((format(printf,2,3)));
-int pm_fprintf(FILE *stream, pmloglevel_t level, const char *format, ...) __attribute__((format(printf,3,4)));
+int pm_printf(alpm_loglevel_t level, const char *format, ...) __attribute__((format(printf,2,3)));
+int pm_fprintf(FILE *stream, alpm_loglevel_t level, const char *format, ...) __attribute__((format(printf,3,4)));
int pm_asprintf(char **string, const char *format, ...);
-int pm_vfprintf(FILE *stream, pmloglevel_t level, const char *format, va_list args) __attribute__((format(printf,3,0)));
-int pm_vasprintf(char **string, pmloglevel_t level, const char *format, va_list args) __attribute__((format(printf,3,0)));
+int pm_vfprintf(FILE *stream, alpm_loglevel_t level, const char *format, va_list args) __attribute__((format(printf,3,0)));
+int pm_vasprintf(char **string, alpm_loglevel_t level, const char *format, va_list args) __attribute__((format(printf,3,0)));
#ifndef HAVE_STRNDUP
char *strndup(const char *s, size_t n);
diff --git a/src/util/.gitignore b/src/util/.gitignore
index 2880ce2a..1813506b 100644
--- a/src/util/.gitignore
+++ b/src/util/.gitignore
@@ -2,6 +2,8 @@
.libs
cleanupdelta
cleanupdelta.exe
+pacsort
+pacsort.exe
pactree
pactree.exe
testdb
diff --git a/src/util/Makefile.am b/src/util/Makefile.am
index 30a2ee35..11308fbf 100644
--- a/src/util/Makefile.am
+++ b/src/util/Makefile.am
@@ -3,7 +3,7 @@ conffile = ${sysconfdir}/pacman.conf
dbpath = ${localstatedir}/lib/pacman/
cachedir = ${localstatedir}/cache/pacman/pkg/
-bin_PROGRAMS = vercmp testpkg testdb cleanupdelta pactree
+bin_PROGRAMS = vercmp testpkg testdb cleanupdelta pacsort pactree
DEFS = -DLOCALEDIR=\"@localedir@\" \
-DCONFFILE=\"$(conffile)\" \
@@ -15,20 +15,22 @@ INCLUDES = -I$(top_srcdir)/lib/libalpm
AM_CFLAGS = -pedantic -D_GNU_SOURCE
-vercmp_SOURCES = vercmp.c
-vercmp_LDADD = $(top_builddir)/lib/libalpm/version.o
-
-testpkg_SOURCES = testpkg.c
-testpkg_LDADD = $(top_builddir)/lib/libalpm/.libs/libalpm.la
-
-testdb_SOURCES = testdb.c
-testdb_LDADD = $(top_builddir)/lib/libalpm/.libs/libalpm.la
-
cleanupdelta_SOURCES = cleanupdelta.c
cleanupdelta_LDADD = $(top_builddir)/lib/libalpm/.libs/libalpm.la
+pacsort_SOURCES = pacsort.c
+pacsort_LDADD = $(top_builddir)/lib/libalpm/.libs/libalpm.la
+
pactree_SOURCES = pactree.c
pactree_LDADD = $(top_builddir)/lib/libalpm/.libs/libalpm.la
+testdb_SOURCES = testdb.c
+testdb_LDADD = $(top_builddir)/lib/libalpm/.libs/libalpm.la
+
+testpkg_SOURCES = testpkg.c
+testpkg_LDADD = $(top_builddir)/lib/libalpm/.libs/libalpm.la
+
+vercmp_SOURCES = vercmp.c
+vercmp_LDADD = $(top_builddir)/lib/libalpm/version.o
# vim:set ts=2 sw=2 noet:
diff --git a/src/util/cleanupdelta.c b/src/util/cleanupdelta.c
index 71ba3a47..a45efdcc 100644
--- a/src/util/cleanupdelta.c
+++ b/src/util/cleanupdelta.c
@@ -29,21 +29,23 @@
#define BASENAME "cleanupdelta"
+alpm_handle_t *handle = NULL;
+
static void cleanup(int signum) {
- if(alpm_release() == -1) {
- fprintf(stderr, "error releasing alpm: %s\n", alpm_strerrorlast());
+ if(handle && alpm_release(handle) == -1) {
+ fprintf(stderr, "error releasing alpm\n");
}
exit(signum);
}
-static void output_cb(pmloglevel_t level, const char *fmt, va_list args)
+static void output_cb(alpm_loglevel_t level, const char *fmt, va_list args)
{
if(strlen(fmt)) {
switch(level) {
- case PM_LOG_ERROR: printf("error: "); break;
- case PM_LOG_WARNING: printf("warning: "); break;
- //case PM_LOG_DEBUG: printf("debug: "); break;
+ case ALPM_LOG_ERROR: printf("error: "); break;
+ case ALPM_LOG_WARNING: printf("warning: "); break;
+ //case ALPM_LOG_DEBUG: printf("debug: "); break;
default: return;
}
vprintf(fmt, args);
@@ -55,7 +57,7 @@ static void checkpkgs(alpm_list_t *pkglist)
{
alpm_list_t *i, *j;
for(i = pkglist; i; i = alpm_list_next(i)) {
- pmpkg_t *pkg = alpm_list_getdata(i);
+ alpm_pkg_t *pkg = alpm_list_getdata(i);
alpm_list_t *unused = alpm_pkg_unused_deltas(pkg);
for(j = unused; j; j = alpm_list_next(j)) {
char *delta = alpm_list_getdata(j);
@@ -65,18 +67,19 @@ static void checkpkgs(alpm_list_t *pkglist)
}
}
-static void checkdbs(char *dbpath, alpm_list_t *dbnames) {
+static void checkdbs(const char *dbpath, alpm_list_t *dbnames) {
char syncdbpath[PATH_MAX];
- pmdb_t *db = NULL;
+ alpm_db_t *db = NULL;
alpm_list_t *i;
+ const alpm_siglevel_t level = ALPM_SIG_DATABASE | ALPM_SIG_DATABASE_OPTIONAL;
for(i = dbnames; i; i = alpm_list_next(i)) {
char *dbname = alpm_list_getdata(i);
snprintf(syncdbpath, PATH_MAX, "%s/sync/%s", dbpath, dbname);
- db = alpm_db_register_sync(dbname);
+ db = alpm_db_register_sync(handle, dbname, level);
if(db == NULL) {
fprintf(stderr, "error: could not register sync database (%s)\n",
- alpm_strerrorlast());
+ alpm_strerror(alpm_errno(handle)));
return;
}
checkpkgs(alpm_db_get_pkgcache(db));
@@ -93,7 +96,8 @@ static void usage(void) {
int main(int argc, char *argv[])
{
- char *dbpath = DBPATH;
+ const char *dbpath = DBPATH;
+ enum _alpm_errno_t err;
int a = 1;
alpm_list_t *dbnames = NULL;
@@ -117,15 +121,14 @@ int main(int argc, char *argv[])
usage();
}
- if(alpm_initialize() == -1) {
- fprintf(stderr, "cannot initialize alpm: %s\n", alpm_strerrorlast());
- return(1);
+ handle = alpm_initialize(ROOTDIR, dbpath, &err);
+ if(!handle) {
+ fprintf(stderr, "cannot initialize alpm: %s\n", alpm_strerror(err));
+ return 1;
}
/* let us get log messages from libalpm */
- alpm_option_set_logcb(output_cb);
-
- alpm_option_set_dbpath(dbpath);
+ alpm_option_set_logcb(handle, output_cb);
checkdbs(dbpath,dbnames);
alpm_list_free(dbnames);
diff --git a/src/util/pacsort.c b/src/util/pacsort.c
new file mode 100644
index 00000000..109d1a16
--- /dev/null
+++ b/src/util/pacsort.c
@@ -0,0 +1,394 @@
+/*
+ * pacsort.c - a sort utility implementing alpm_pkg_vercmp
+ *
+ * Copyright (c) 2010-2011 Pacman Development Team <pacman-dev@archlinux.org>
+ *
+ * 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, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+
+#include <errno.h>
+#include <getopt.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <alpm.h>
+
+#define DELIM ' '
+
+struct buffer_t {
+ char *mem;
+ size_t len;
+ size_t maxlen;
+};
+
+struct list_t {
+ char **list;
+ size_t count;
+ size_t maxcount;
+};
+
+static struct options_t {
+ int order;
+ int sortkey;
+ int null;
+ char delim;
+} opts;
+
+static struct buffer_t *buffer_new(size_t initial_size)
+{
+ struct buffer_t *buf;
+
+ buf = calloc(1, sizeof(*buf));
+ if(!buf) {
+ return NULL;
+ }
+
+ buf->mem = calloc(initial_size, sizeof(char));
+ if(!buf->mem) {
+ free(buf);
+ return NULL;
+ }
+
+ buf->len = 0;
+ buf->maxlen = initial_size;
+
+ return buf;
+}
+
+static void buffer_free(struct buffer_t *buf)
+{
+ if(!buf) {
+ return;
+ }
+
+ if(buf->mem) {
+ free(buf->mem);
+ }
+
+ free(buf);
+}
+
+static int buffer_grow(struct buffer_t *buffer)
+{
+ size_t newsz = buffer->maxlen * 2.5;
+ buffer->mem = realloc(buffer->mem, newsz * sizeof(char));
+ if(!buffer->mem) {
+ return 1;
+ }
+ buffer->maxlen = newsz;
+
+ return 0;
+}
+
+static struct list_t *list_new(size_t initial_size)
+{
+ struct list_t *list;
+
+ list = calloc(1, sizeof(struct list_t));
+ if(!list) {
+ return NULL;
+ }
+
+ list->list = calloc(initial_size, sizeof(char **));
+ if(!list->list) {
+ free(list);
+ return NULL;
+ }
+
+ list->maxcount = initial_size;
+
+ return list;
+}
+
+static int list_grow(struct list_t *list)
+{
+ size_t newsz = list->maxcount * 2.5;
+ list->list = realloc(list->list, newsz * sizeof(char*));
+ if(!list->list) {
+ return 1;
+ }
+
+ list->maxcount = newsz;
+
+ return 0;
+}
+
+static int list_add(struct list_t *list, char *name)
+{
+ if(!list|!name) {
+ return 1;
+ }
+
+ if(list->count + 1 >= list->maxcount) {
+ if(list_grow(list) != 0) {
+ return 1;
+ }
+ }
+
+ list->list[list->count] = name;
+ list->count++;
+
+ return 0;
+}
+
+static void list_free(struct list_t *list)
+{
+ size_t i;
+
+ if(!list) {
+ return;
+ }
+
+ if(list->list) {
+ for(i = 0; i < list->count; i++) {
+ free(list->list[i]);
+ }
+ free(list->list);
+ free(list);
+ }
+}
+
+static char *explode(struct buffer_t *buffer, struct list_t *list)
+{
+ char *name, *ptr, *end;
+ const char linedelim = opts.null ? '\0' : '\n';
+
+ ptr = buffer->mem;
+ while((end = memchr(ptr, linedelim, &buffer->mem[buffer->len] - ptr))) {
+ *end = '\0';
+ name = strdup(ptr);
+ list_add(list, name);
+ ptr = end + 1;
+ }
+
+ return ptr;
+}
+
+static int splitfile(FILE *stream, struct buffer_t *buffer, struct list_t *list)
+{
+ size_t nread;
+ char *ptr;
+
+ while(!feof(stream)) {
+ /* check if a read of BUFSIZ chars will overflow */
+ if (buffer->len + BUFSIZ + 1 >= buffer->maxlen) {
+ if(buffer_grow(buffer) != 0) {
+ return 1;
+ }
+ }
+
+ nread = fread(&buffer->mem[buffer->len], 1, BUFSIZ, stream);
+ if(nread == 0) {
+ break; /* EOF */
+ }
+ buffer->len += nread;
+
+ if((ptr = explode(buffer, list)) == NULL) {
+ return 1;
+ }
+
+ if(ptr != buffer->mem) {
+ /* realign the data in the buffer */
+ buffer->len = &buffer->mem[buffer->len] - ptr;
+ memmove(&buffer->mem[0], ptr, buffer->len + 1);
+ }
+ }
+
+ if(buffer->len) {
+ char *name = strndup(buffer->mem, buffer->len + 1);
+ if(list_add(list, name) != 0) {
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
+/* returns a pointer to the nth column of a string without being destructive */
+static const char *nth_column(const char *string)
+{
+ const char *prev, *ptr;
+ int col;
+
+ ptr = prev = string;
+ for(col = 1; ptr && col <= opts.sortkey; col++) {
+ prev = ptr;
+ ptr = strchr(ptr, opts.delim);
+ if(ptr) {
+ ptr++;
+ }
+ }
+
+ return prev;
+}
+
+static int vercmp(const void *p1, const void *p2)
+{
+ const char *name1, *name2;
+
+ name1 = *(const char **)p1;
+ name2 = *(const char **)p2;
+
+ if(opts.sortkey == 0) {
+ return opts.order * alpm_pkg_vercmp(name1, name2);
+ } else {
+ return opts.order * alpm_pkg_vercmp(nth_column(name1), nth_column(name2));
+ }
+}
+
+static char escape_char(const char *string)
+{
+ const size_t len = strlen(string);
+
+ if(!string || len > 2) {
+ return -1;
+ }
+
+ if(len == 1) {
+ return *string;
+ }
+
+ if(*string != '\\') {
+ return -1;
+ }
+
+ switch(string[1]) {
+ case 't':
+ return '\t';
+ case 'n':
+ return '\n';
+ case 'v':
+ return '\v';
+ case '0':
+ return '\0';
+ default:
+ return -1;
+ }
+}
+
+static void usage(void)
+{
+ fprintf(stderr, "pacsort v" PACKAGE_VERSION "\n"
+ "Usage: pacsort [options] [files...]\n\n"
+ " -h, --help display this help message\n"
+ " -k, --key <index> sort input starting on specified column\n"
+ " -r, --reverse sort in reverse order (default: oldest to newest)\n"
+ " -t, --separator <sep> specify field separator (default: space)\n"
+ " -z, --null lines end with null bytes, not newlines\n\n");
+}
+
+static int parse_options(int argc, char **argv)
+{
+ int opt;
+
+ static const struct option opttable[] = {
+ {"help", no_argument, 0, 'h'},
+ {"key", required_argument, 0, 'k'},
+ {"reverse", no_argument, 0, 'r'},
+ {"separator", required_argument, 0, 't'},
+ {"null", no_argument, 0, 'z'},
+ {0, 0, 0, 0}
+ };
+
+ while((opt = getopt_long(argc, argv, "hk:rt:z", opttable, NULL)) != -1) {
+ switch(opt) {
+ case 'h':
+ return 1;
+ case 'k':
+ opts.sortkey = (int)strtol(optarg, NULL, 10);
+ if(opts.sortkey <= 0) {
+ fprintf(stderr, "error: invalid sort key -- %s\n", optarg);
+ return 1;
+ }
+ break;
+ case 'r':
+ opts.order = -1;
+ break;
+ case 't':
+ opts.delim = escape_char(optarg);
+ if(opts.delim == -1) {
+ fprintf(stderr, "error: invalid field separator -- `%s'\n", optarg);
+ return 1;
+ }
+ break;
+ case 'z':
+ opts.null = 1;
+ break;
+ default:
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
+int main(int argc, char *argv[])
+{
+ struct list_t *list;
+ struct buffer_t *buffer;
+ size_t i;
+
+ /* option defaults */
+ opts.order = 1;
+ opts.delim = DELIM;
+ opts.sortkey = 0;
+ opts.null = 0;
+
+ if(parse_options(argc, argv) != 0) {
+ usage();
+ return 2;
+ }
+
+ list = list_new(100);
+ buffer = buffer_new(BUFSIZ * 3);
+
+ if(optind == argc) {
+ if(splitfile(stdin, buffer, list) != 0) {
+ fprintf(stderr, "%s: memory exhausted\n", argv[0]);
+ return ENOMEM;
+ }
+ } else {
+ while(optind < argc) {
+ FILE *input = fopen(argv[optind], "r");
+ if(input) {
+ if(splitfile(input, buffer, list) != 0) {
+ fprintf(stderr, "%s: memory exhausted\n", argv[0]);
+ return ENOMEM;
+ }
+ fclose(input);
+ } else {
+ fprintf(stderr, "%s: %s: %s\n", argv[0], argv[optind], strerror(errno));
+ }
+ optind++;
+ }
+ }
+
+ if(list->count) {
+ const char linedelim = opts.null ? '\0' : '\n';
+ qsort(list->list, list->count, sizeof(char *), vercmp);
+ for(i = 0; i < list->count; i++) {
+ printf("%s%c", list->list[i], linedelim);
+ }
+ list_free(list);
+ }
+
+ buffer_free(buffer);
+
+ return 0;
+}
+
+/* vim: set ts=2 sw=2 noet: */
diff --git a/src/util/pactree.c b/src/util/pactree.c
index 6a10006f..5a27cc77 100644
--- a/src/util/pactree.c
+++ b/src/util/pactree.c
@@ -26,63 +26,137 @@
#include <alpm.h>
#include <alpm_list.h>
+#define LINE_MAX 512
+
/* output */
-char *provides = " provides";
-char *unresolvable = " [unresolvable]";
-char *branch_tip1 = "|--";
-char *branch_tip2 = "+--";
-int indent_size = 3;
-
-/* color */
-char *branch1_color = "\033[0;33m"; /* yellow */
-char *branch2_color = "\033[0;37m"; /* white */
-char *leaf1_color = "\033[1;32m"; /* bold green */
-char *leaf2_color = "\033[0;32m"; /* green */
-char *color_off = "\033[0m";
+struct graph_style {
+ const char *provides;
+ const char *tip1;
+ const char *tip2;
+ int indent;
+};
+
+static struct graph_style graph_default = {
+ " provides",
+ "|--",
+ "+--",
+ 3
+};
+
+static struct graph_style graph_linear = {
+ "",
+ "",
+ "",
+ 0
+};
+
+/* color choices */
+struct color_choices {
+ const char *branch1;
+ const char *branch2;
+ const char *leaf1;
+ const char *leaf2;
+ const char *off;
+};
+
+static struct color_choices use_color = {
+ "\033[0;33m", /* yellow */
+ "\033[0;37m", /* white */
+ "\033[1;32m", /* bold green */
+ "\033[0;32m", /* green */
+ "\033[0m"
+};
+
+static struct color_choices no_color = {
+ "",
+ "",
+ "",
+ "",
+ ""
+};
/* globals */
-pmdb_t *db_local;
+alpm_handle_t *handle = NULL;
alpm_list_t *walked = NULL;
alpm_list_t *provisions = NULL;
/* options */
-int color = 0;
+struct color_choices *color = &no_color;
+struct graph_style *style = &graph_default;
int graphviz = 0;
-int linear = 0;
int max_depth = -1;
int reverse = 0;
int unique = 0;
-char *dbpath = NULL;
+int searchsyncs = 0;
+const char *dbpath = DBPATH;
-static int alpm_local_init(void)
+static char *strtrim(char *str)
{
- int ret;
+ char *pch = str;
- ret = alpm_initialize();
- if(ret != 0) {
- return(ret);
+ if(str == NULL || *str == '\0') {
+ /* string is empty, so we're done. */
+ return str;
}
- ret = alpm_option_set_root(ROOTDIR);
- if(ret != 0) {
- return(ret);
+ while(isspace((unsigned char)*pch)) {
+ pch++;
+ }
+ if(pch != str) {
+ memmove(str, pch, (strlen(pch) + 1));
}
- if(dbpath) {
- ret = alpm_option_set_dbpath(dbpath);
- } else {
- ret = alpm_option_set_dbpath(DBPATH);
+ /* check if there wasn't anything but whitespace in the string. */
+ if(*str == '\0') {
+ return str;
}
- if(ret != 0) {
- return(ret);
+
+ pch = (str + (strlen(str) - 1));
+ while(isspace((unsigned char)*pch)) {
+ pch--;
}
+ *++pch = '\0';
+
+ return str;
+}
+
+static int register_syncs(void) {
+ FILE *fp;
+ char *ptr, *section = NULL;
+ char line[LINE_MAX];
+ const alpm_siglevel_t level = ALPM_SIG_DATABASE | ALPM_SIG_DATABASE_OPTIONAL;
- db_local = alpm_option_get_localdb();
- if(!db_local) {
- return(1);
+ fp = fopen(CONFFILE, "r");
+ if(!fp) {
+ return 1;
}
- return(0);
+ while(fgets(line, LINE_MAX, fp)) {
+ strtrim(line);
+
+ if(line[0] == '#' || !strlen(line)) {
+ continue;
+ }
+
+ if((ptr = strchr(line, '#'))) {
+ *ptr = '\0';
+ strtrim(line);
+ }
+
+ if(line[0] == '[' && line[strlen(line) - 1] == ']') {
+ free(section);
+ section = strndup(&line[1], strlen(line) - 2);
+
+ if(section && strcmp(section, "options") != 0) {
+ alpm_db_register_sync(handle, section, level);
+ }
+ }
+ }
+
+ free(section);
+ fclose(fp);
+
+ return 0;
}
static int parse_options(int argc, char *argv[])
@@ -90,7 +164,7 @@ static int parse_options(int argc, char *argv[])
int opt, option_index = 0;
char *endptr = NULL;
- static struct option opts[] = {
+ static const struct option opts[] = {
{"dbpath", required_argument, 0, 'b'},
{"color", no_argument, 0, 'c'},
{"depth", required_argument, 0, 'd'},
@@ -98,21 +172,22 @@ static int parse_options(int argc, char *argv[])
{"help", no_argument, 0, 'h'},
{"linear", no_argument, 0, 'l'},
{"reverse", no_argument, 0, 'r'},
+ {"sync", no_argument, 0, 'S'},
{"unique", no_argument, 0, 'u'},
{0, 0, 0, 0}
};
- while((opt = getopt_long(argc, argv, "b:cd:ghlru", opts, &option_index))) {
+ while((opt = getopt_long(argc, argv, "b:cd:ghlrsu", opts, &option_index))) {
if(opt < 0) {
break;
}
switch(opt) {
case 'b':
- dbpath = strdup(optarg);
+ dbpath = optarg;
break;
case 'c':
- color = 1;
+ color = &use_color;
break;
case 'd':
/* validate depth */
@@ -126,40 +201,30 @@ static int parse_options(int argc, char *argv[])
graphviz = 1;
break;
case 'l':
- linear = 1;
+ style = &graph_linear;
break;
case 'r':
reverse = 1;
break;
+ case 's':
+ searchsyncs = 1;
+ break;
case 'u':
- unique = linear = 1;
+ unique = 1;
+ style = &graph_linear;
break;
case 'h':
case '?':
default:
- return(1);
+ return 1;
}
}
if(!argv[optind]) {
- return(1);
+ return 1;
}
- if(!color) {
- branch1_color = "";
- branch2_color = "";
- leaf1_color = "";
- leaf2_color = "";
- color_off = "";
- }
- if(linear) {
- provides = "";
- branch_tip1 = "";
- branch_tip2 = "";
- indent_size = 0;
- }
-
- return(0);
+ return 0;
}
static void usage(void)
@@ -172,25 +237,22 @@ static void usage(void)
" -g, --graph generate output for graphviz's dot\n"
" -l, --linear enable linear output\n"
" -r, --reverse show reverse dependencies\n"
+ " -s, --sync search sync DBs instead of local\n"
" -u, --unique show dependencies with no duplicates (implies -l)\n\n"
" -h, --help display this help message\n");
}
static void cleanup(void)
{
- if(dbpath) {
- free(dbpath);
- }
-
alpm_list_free(walked);
alpm_list_free(provisions);
- alpm_release();
+ alpm_release(handle);
}
/* pkg provides provision */
static void print_text(const char *pkg, const char *provision, int depth)
{
- int indent_sz = (depth + 1) * indent_size;
+ int indent_sz = (depth + 1) * style->indent;
if(!pkg && !provision) {
/* not much we can do */
@@ -199,17 +261,17 @@ static void print_text(const char *pkg, const char *provision, int depth)
if(!pkg && provision) {
/* we failed to resolve provision */
- printf("%s%*s%s%s%s%s%s\n", branch1_color, indent_sz, branch_tip1,
- leaf1_color, provision, branch1_color, unresolvable, color_off);
+ printf("%s%*s%s%s%s [unresolvable]%s\n", color->branch1, indent_sz,
+ style->tip1, color->leaf1, provision, color->branch1, color->off);
} else if(provision && strcmp(pkg, provision) != 0) {
/* pkg provides provision */
- printf("%s%*s%s%s%s%s %s%s%s\n", branch2_color, indent_sz, branch_tip2,
- leaf1_color, pkg, leaf2_color, provides, leaf1_color, provision,
- color_off);
+ printf("%s%*s%s%s%s%s %s%s%s\n", color->branch2, indent_sz, style->tip2,
+ color->leaf1, pkg, color->leaf2, style->provides, color->leaf1, provision,
+ color->off);
} else {
/* pkg is a normal package */
- printf("%s%*s%s%s%s\n", branch1_color, indent_sz, branch_tip1, leaf1_color,
- pkg, color_off);
+ printf("%s%*s%s%s%s\n", color->branch1, indent_sz, style->tip1, color->leaf1,
+ pkg, color->off);
}
}
@@ -255,19 +317,31 @@ static void print_end(void)
}
}
+static alpm_pkg_t *get_pkg_from_dbs(alpm_list_t *dbs, const char *needle) {
+ alpm_list_t *i;
+ alpm_pkg_t *ret;
+
+ for(i = dbs; i; i = alpm_list_next(i)) {
+ ret = alpm_db_get_pkg(alpm_list_getdata(i), needle);
+ if(ret) {
+ return ret;
+ }
+ }
+ return NULL;
+}
/**
* walk dependencies in reverse, showing packages which require the target
*/
-static void walk_reverse_deps(pmpkg_t *pkg, int depth)
+static void walk_reverse_deps(alpm_list_t *dblist, alpm_pkg_t *pkg, int depth)
{
alpm_list_t *required_by, *i;
- if((max_depth >= 0) && (depth == max_depth + 1)) {
+ if(!pkg || ((max_depth >= 0) && (depth == max_depth + 1))) {
return;
}
- walked = alpm_list_add(walked, (void*)alpm_pkg_get_name(pkg));
+ walked = alpm_list_add(walked, (void *)alpm_pkg_get_name(pkg));
required_by = alpm_pkg_compute_requiredby(pkg);
for(i = required_by; i; i = alpm_list_next(i)) {
@@ -281,7 +355,7 @@ static void walk_reverse_deps(pmpkg_t *pkg, int depth)
}
} else {
print(alpm_pkg_get_name(pkg), pkgname, NULL, depth);
- walk_reverse_deps(alpm_db_get_pkg(db_local, pkgname), depth + 1);
+ walk_reverse_deps(dblist, get_pkg_from_dbs(dblist, pkgname), depth + 1);
}
}
@@ -291,7 +365,7 @@ static void walk_reverse_deps(pmpkg_t *pkg, int depth)
/**
* walk dependencies, showing dependencies of the target
*/
-static void walk_deps(pmpkg_t *pkg, int depth)
+static void walk_deps(alpm_list_t *dblist, alpm_pkg_t *pkg, int depth)
{
alpm_list_t *i;
@@ -299,12 +373,11 @@ static void walk_deps(pmpkg_t *pkg, int depth)
return;
}
- walked = alpm_list_add(walked, (void*)alpm_pkg_get_name(pkg));
+ walked = alpm_list_add(walked, (void *)alpm_pkg_get_name(pkg));
for(i = alpm_pkg_get_depends(pkg); i; i = alpm_list_next(i)) {
- pmdepend_t *depend = alpm_list_getdata(i);
- pmpkg_t *provider = alpm_find_satisfier(alpm_db_get_pkgcache(db_local),
- alpm_dep_get_name(depend));
+ alpm_depend_t *depend = alpm_list_getdata(i);
+ alpm_pkg_t *provider = alpm_find_dbs_satisfier(handle, dblist, depend->name);
if(provider) {
const char *provname = alpm_pkg_get_name(provider);
@@ -313,41 +386,57 @@ static void walk_deps(pmpkg_t *pkg, int depth)
/* if we've already seen this package, don't print in "unique" output
* and don't recurse */
if(!unique) {
- print(alpm_pkg_get_name(pkg), provname, alpm_dep_get_name(depend), depth);
+ print(alpm_pkg_get_name(pkg), provname, depend->name, depth);
}
} else {
- print(alpm_pkg_get_name(pkg), provname, alpm_dep_get_name(depend), depth);
- walk_deps(provider, depth + 1);
+ print(alpm_pkg_get_name(pkg), provname, depend->name, depth);
+ walk_deps(dblist, provider, depth + 1);
}
} else {
/* unresolvable package */
- print(alpm_pkg_get_name(pkg), NULL, alpm_dep_get_name(depend), depth);
+ print(alpm_pkg_get_name(pkg), NULL, depend->name, depth);
}
}
}
int main(int argc, char *argv[])
{
- int ret;
+ int freelist = 0, ret = 0;
+ enum _alpm_errno_t err;
const char *target_name;
- pmpkg_t *pkg;
+ alpm_pkg_t *pkg;
+ alpm_list_t *dblist = NULL;
- ret = parse_options(argc, argv);
- if(ret != 0) {
+ if(parse_options(argc, argv) != 0) {
usage();
+ ret = 1;
goto finish;
}
- ret = alpm_local_init();
- if(ret != 0) {
- fprintf(stderr, "error: cannot initialize alpm: %s\n", alpm_strerrorlast());
+ handle = alpm_initialize(ROOTDIR, dbpath, &err);
+ if(!handle) {
+ fprintf(stderr, "error: cannot initialize alpm: %s\n",
+ alpm_strerror(err));
+ ret = 1;
goto finish;
}
+ if(searchsyncs) {
+ if(register_syncs() != 0) {
+ fprintf(stderr, "error: failed to register sync DBs\n");
+ ret = 1;
+ goto finish;
+ }
+ dblist = alpm_option_get_syncdbs(handle);
+ } else {
+ dblist = alpm_list_add(dblist, alpm_option_get_localdb(handle));
+ freelist = 1;
+ }
+
/* we only care about the first non option arg for walking */
target_name = argv[optind];
- pkg = alpm_find_satisfier(alpm_db_get_pkgcache(db_local), target_name);
+ pkg = alpm_find_dbs_satisfier(handle, dblist, target_name);
if(!pkg) {
fprintf(stderr, "error: package '%s' not found\n", target_name);
ret = 1;
@@ -357,16 +446,20 @@ int main(int argc, char *argv[])
print_start(alpm_pkg_get_name(pkg), target_name);
if(reverse) {
- walk_reverse_deps(pkg, 1);
+ walk_reverse_deps(dblist, pkg, 1);
} else {
- walk_deps(pkg, 1);
+ walk_deps(dblist, pkg, 1);
}
print_end();
+ if(freelist) {
+ alpm_list_free(dblist);
+ }
+
finish:
cleanup();
- return(ret);
+ return ret;
}
/* vim: set ts=2 sw=2 noet: */
diff --git a/src/util/testdb.c b/src/util/testdb.c
index 0436a23f..d85687a4 100644
--- a/src/util/testdb.c
+++ b/src/util/testdb.c
@@ -31,20 +31,23 @@
#define BASENAME "testdb"
-static void cleanup(int signum) {
- if(alpm_release() == -1) {
- fprintf(stderr, "error releasing alpm: %s\n", alpm_strerrorlast());
+alpm_handle_t *handle = NULL;
+
+static void cleanup(int signum)
+{
+ if(handle && alpm_release(handle) == -1) {
+ fprintf(stderr, "error releasing alpm\n");
}
exit(signum);
}
-static void output_cb(pmloglevel_t level, const char *fmt, va_list args)
+static void output_cb(alpm_loglevel_t level, const char *fmt, va_list args)
{
if(strlen(fmt)) {
switch(level) {
- case PM_LOG_ERROR: printf("error: "); break;
- case PM_LOG_WARNING: printf("warning: "); break;
+ case ALPM_LOG_ERROR: printf("error: "); break;
+ case ALPM_LOG_WARNING: printf("warning: "); break;
default: return;
}
vprintf(fmt, args);
@@ -59,14 +62,14 @@ static int check_localdb_files(void)
int ret = 0;
DIR *dir;
- dbpath = alpm_option_get_dbpath();
+ dbpath = alpm_option_get_dbpath(handle);
snprintf(path, sizeof(path), "%slocal", dbpath);
if(!(dir = opendir(path))) {
fprintf(stderr, "error : %s : %s\n", path, strerror(errno));
- return(1);
+ return 1;
}
- while ((ent = readdir(dir)) != NULL) {
+ while((ent = readdir(dir)) != NULL) {
if(strcmp(ent->d_name, ".") == 0 || strcmp(ent->d_name, "..") == 0
|| ent->d_name[0] == '.') {
continue;
@@ -85,10 +88,10 @@ static int check_localdb_files(void)
}
if(closedir(dir)) {
fprintf(stderr, "error closing dbpath : %s\n", strerror(errno));
- return(1);
+ return 1;
}
- return(ret);
+ return ret;
}
static int checkdeps(alpm_list_t *pkglist)
@@ -96,18 +99,17 @@ static int checkdeps(alpm_list_t *pkglist)
alpm_list_t *data, *i;
int ret = 0;
/* check dependencies */
- data = alpm_checkdeps(pkglist, 0, NULL, pkglist);
+ data = alpm_checkdeps(handle, pkglist, NULL, pkglist, 0);
for(i = data; i; i = alpm_list_next(i)) {
- pmdepmissing_t *miss = alpm_list_getdata(i);
- pmdepend_t *dep = alpm_miss_get_dep(miss);
- char *depstring = alpm_dep_compute_string(dep);
- printf("missing dependency for %s : %s\n", alpm_miss_get_target(miss),
+ alpm_depmissing_t *miss = alpm_list_getdata(i);
+ char *depstring = alpm_dep_compute_string(miss->depend);
+ printf("missing dependency for %s : %s\n", miss->target,
depstring);
free(depstring);
ret++;
}
FREELIST(data);
- return(ret);
+ return ret;
}
static int checkconflicts(alpm_list_t *pkglist)
@@ -115,50 +117,48 @@ static int checkconflicts(alpm_list_t *pkglist)
alpm_list_t *data, *i;
int ret = 0;
/* check conflicts */
- data = alpm_checkconflicts(pkglist);
+ data = alpm_checkconflicts(handle, pkglist);
for(i = data; i; i = i->next) {
- pmconflict_t *conflict = alpm_list_getdata(i);
- printf("%s conflicts with %s\n", alpm_conflict_get_package1(conflict),
- alpm_conflict_get_package2(conflict));
+ alpm_conflict_t *conflict = alpm_list_getdata(i);
+ printf("%s conflicts with %s\n",
+ conflict->package1, conflict->package2);
ret++;
}
FREELIST(data);
- return(ret);
+ return ret;
}
-static int check_localdb(void) {
+static int check_localdb(void)
+{
int ret = 0;
- pmdb_t *db = NULL;
+ alpm_db_t *db = NULL;
alpm_list_t *pkglist;
ret = check_localdb_files();
if(ret) {
- return(ret);
+ return ret;
}
- db = alpm_option_get_localdb();
- if(db == NULL) {
- fprintf(stderr, "error: could not register 'local' database (%s)\n",
- alpm_strerrorlast());
- cleanup(EXIT_FAILURE);
- }
+ db = alpm_option_get_localdb(handle);
pkglist = alpm_db_get_pkgcache(db);
ret += checkdeps(pkglist);
ret += checkconflicts(pkglist);
- return(ret);
+ return ret;
}
-static int check_syncdbs(alpm_list_t *dbnames) {
+static int check_syncdbs(alpm_list_t *dbnames)
+{
int ret = 0;
- pmdb_t *db = NULL;
+ alpm_db_t *db = NULL;
alpm_list_t *i, *pkglist, *syncpkglist = NULL;
+ const alpm_siglevel_t level = ALPM_SIG_DATABASE | ALPM_SIG_DATABASE_OPTIONAL;
for(i = dbnames; i; i = alpm_list_next(i)) {
char *dbname = alpm_list_getdata(i);
- db = alpm_db_register_sync(dbname);
+ db = alpm_db_register_sync(handle, dbname, level);
if(db == NULL) {
fprintf(stderr, "error: could not register sync database (%s)\n",
- alpm_strerrorlast());
+ alpm_strerror(alpm_errno(handle)));
ret = 1;
goto cleanup;
}
@@ -169,10 +169,11 @@ static int check_syncdbs(alpm_list_t *dbnames) {
cleanup:
alpm_list_free(syncpkglist);
- return(ret);
+ return ret;
}
-static void usage(void) {
+static void usage(void)
+{
fprintf(stderr, "usage:\n");
fprintf(stderr,
"\t%s [-b <pacman db>] : check the local database\n", BASENAME);
@@ -184,7 +185,8 @@ static void usage(void) {
int main(int argc, char *argv[])
{
int ret = 0;
- char *dbpath = DBPATH;
+ enum _alpm_errno_t err;
+ const char *dbpath = DBPATH;
int a = 1;
alpm_list_t *dbnames = NULL;
@@ -204,18 +206,14 @@ int main(int argc, char *argv[])
a++;
}
- if(alpm_initialize() == -1) {
- fprintf(stderr, "cannot initialize alpm: %s\n", alpm_strerrorlast());
- return(EXIT_FAILURE);
+ handle = alpm_initialize(ROOTDIR, dbpath, &err);
+ if(!handle) {
+ fprintf(stderr, "cannot initialize alpm: %s\n", alpm_strerror(err));
+ return EXIT_FAILURE;
}
/* let us get log messages from libalpm */
- alpm_option_set_logcb(output_cb);
-
- if(alpm_option_set_dbpath(dbpath) != 0) {
- fprintf(stderr, "cannot set dbpath: %s\n", alpm_strerrorlast());
- return(EXIT_FAILURE);
- }
+ alpm_option_set_logcb(handle, output_cb);
if(!dbnames) {
ret = check_localdb();
diff --git a/src/util/testpkg.c b/src/util/testpkg.c
index d0d9cac1..ac2dde28 100644
--- a/src/util/testpkg.c
+++ b/src/util/testpkg.c
@@ -24,14 +24,14 @@
#define BASENAME "testpkg"
-static void output_cb(pmloglevel_t level, const char *fmt, va_list args)
+static void output_cb(alpm_loglevel_t level, const char *fmt, va_list args)
{
if(fmt[0] == '\0') {
return;
}
switch(level) {
- case PM_LOG_ERROR: printf("error: "); break;
- case PM_LOG_WARNING: printf("warning: "); break;
+ case ALPM_LOG_ERROR: printf("error: "); break;
+ case ALPM_LOG_WARNING: printf("warning: "); break;
default: return; /* skip other messages */
}
vprintf(fmt, args);
@@ -40,32 +40,38 @@ static void output_cb(pmloglevel_t level, const char *fmt, va_list args)
int main(int argc, char *argv[])
{
int retval = 1; /* default = false */
- pmpkg_t *pkg = NULL;
+ alpm_handle_t *handle;
+ enum _alpm_errno_t err;
+ alpm_pkg_t *pkg = NULL;
+ const alpm_siglevel_t level = ALPM_SIG_PACKAGE | ALPM_SIG_PACKAGE_OPTIONAL;
if(argc != 2) {
fprintf(stderr, "usage: %s <package file>\n", BASENAME);
- return(1);
+ return 1;
}
- if(alpm_initialize() == -1) {
- fprintf(stderr, "cannot initialize alpm: %s\n", alpm_strerrorlast());
- return(1);
+ handle = alpm_initialize(ROOTDIR, DBPATH, &err);
+ if(!handle) {
+ fprintf(stderr, "cannot initialize alpm: %s\n", alpm_strerror(err));
+ return 1;
}
/* let us get log messages from libalpm */
- alpm_option_set_logcb(output_cb);
+ alpm_option_set_logcb(handle, output_cb);
- if(alpm_pkg_load(argv[1], 1, &pkg) == -1 || pkg == NULL) {
- switch(pm_errno) {
- case PM_ERR_PKG_OPEN:
+ if(alpm_pkg_load(handle, argv[1], 1, level, &pkg) == -1
+ || pkg == NULL) {
+ err = alpm_errno(handle);
+ switch(err) {
+ case ALPM_ERR_PKG_OPEN:
printf("Cannot open the given file.\n");
break;
- case PM_ERR_LIBARCHIVE:
- case PM_ERR_PKG_INVALID:
+ case ALPM_ERR_LIBARCHIVE:
+ case ALPM_ERR_PKG_INVALID:
printf("Package is invalid.\n");
break;
default:
- printf("libalpm error: %s\n", alpm_strerrorlast());
+ printf("libalpm error: %s\n", alpm_strerror(err));
break;
}
retval = 1;
@@ -75,9 +81,9 @@ int main(int argc, char *argv[])
retval = 0;
}
- if(alpm_release() == -1) {
- fprintf(stderr, "error releasing alpm: %s\n", alpm_strerrorlast());
+ if(alpm_release(handle) == -1) {
+ fprintf(stderr, "error releasing alpm\n");
}
- return(retval);
+ return retval;
}
diff --git a/src/util/vercmp.c b/src/util/vercmp.c
index adb5a42a..f4356fb4 100644
--- a/src/util/vercmp.c
+++ b/src/util/vercmp.c
@@ -20,7 +20,7 @@
#include <stdlib.h>
#include <stdio.h> /* printf */
-#include <string.h> /* strncpy */
+#include <string.h>
#define BASENAME "vercmp"
@@ -45,13 +45,13 @@ int main(int argc, char *argv[])
if(argc == 1) {
usage();
- return(2);
+ return 2;
}
if(argc > 1 &&
(strcmp(argv[1], "-h") == 0 || strcmp(argv[1], "--help") == 0
|| strcmp(argv[1], "--usage") == 0)) {
usage();
- return(0);
+ return 0;
}
if(argc > 2) {
s2 = argv[2];
@@ -62,5 +62,5 @@ int main(int argc, char *argv[])
ret = alpm_pkg_vercmp(s1, s2);
printf("%d\n", ret);
- return(EXIT_SUCCESS);
+ return EXIT_SUCCESS;
}