summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJudd Vinet <judd@archlinux.org>2006-06-28 07:37:15 +0200
committerJudd Vinet <judd@archlinux.org>2006-06-28 07:37:15 +0200
commit7236dd32872f0eeed21a97d15807f0ef27f45a20 (patch)
tree0e0b6e028c502ec6c9beb34ffa7977b5c57c19df
parent1a30bc554d7d29f68515ab3feb308df7762918b3 (diff)
downloadpacman-7236dd32872f0eeed21a97d15807f0ef27f45a20.tar.gz
pacman-7236dd32872f0eeed21a97d15807f0ef27f45a20.tar.xz
i18n stuff
-rwxr-xr-xautoclean.sh14
-rwxr-xr-xautogen.sh2
-rw-r--r--configure.ac4
-rw-r--r--lib/libalpm/Makefile.am4
-rw-r--r--lib/libalpm/po/LINGUAS5
-rw-r--r--lib/libalpm/po/Makefile.in.in356
-rw-r--r--lib/libalpm/po/Makevars43
-rw-r--r--lib/libalpm/po/POTFILES.in22
-rw-r--r--lib/libalpm/po/libalpm.pot1075
-rw-r--r--lib/libalpm/po/stamp-po1
-rw-r--r--src/pacman/Makefile.am5
-rw-r--r--src/pacman/pacman.c14
-rw-r--r--src/pacman/po/LINGUAS6
-rw-r--r--src/pacman/po/Makefile.in.in355
-rw-r--r--src/pacman/po/Makevars43
-rw-r--r--src/pacman/po/POTFILES.in13
-rw-r--r--src/pacman/po/pacman.pot1315
-rw-r--r--src/pacman/po/stamp-po1
18 files changed, 3277 insertions, 1 deletions
diff --git a/autoclean.sh b/autoclean.sh
index b088bb74..9964340f 100755
--- a/autoclean.sh
+++ b/autoclean.sh
@@ -27,5 +27,19 @@ rm -rf doc/*.8
rm -rf doc/man3/*
rm -rf compile
rm -rf libtool
+rm -rf mkinstalldirs
+rm -rf config.rpath
rm -rf scripts/.deps/
rm -rf scripts/Makefile.in
+
+rm -rf src/pacman/po/Makefile
+rm -rf src/pacman/po/Makefile.in
+rm -rf src/pacman/po/POTFILES
+rm -rf src/pacman/po/stamp-po
+rm -rf src/pacman/po/*.gmo
+
+rm -rf lib/libalpm/po/Makefile
+rm -rf lib/libalpm/po/Makefile.in
+rm -rf lib/libalpm/po/POTFILES
+rm -rf lib/libalpm/po/stamp-po
+rm -rf lib/libalpm/po/*.gmo
diff --git a/autogen.sh b/autogen.sh
index 7d6a5ace..cadcd242 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -6,3 +6,5 @@ aclocal --force
autoheader -f
autoconf -f
automake -a -c --gnu --foreign
+cp -f /usr/share/automake-1.9/mkinstalldirs ./
+cp -f /usr/share/gettext/config.rpath ./
diff --git a/configure.ac b/configure.ac
index 43f05519..7a0cc559 100644
--- a/configure.ac
+++ b/configure.ac
@@ -6,6 +6,8 @@ AC_LANG(C)
AM_CONFIG_HEADER(config.h)
AC_CANONICAL_SYSTEM
AM_INIT_AUTOMAKE
+AM_GNU_GETTEXT([external])
+AM_GNU_GETTEXT_VERSION(0.13.1)
dnl Host dependant flags
case "${host}" in
@@ -170,8 +172,10 @@ dnl ==========================================================================
AC_OUTPUT([
lib/libalpm/Makefile
+lib/libalpm/po/Makefile.in
lib/libftp/Makefile
src/pacman/Makefile
+src/pacman/po/Makefile.in
src/util/Makefile
scripts/Makefile
doc/Makefile
diff --git a/lib/libalpm/Makefile.am b/lib/libalpm/Makefile.am
index 2d25db14..5151f4dd 100644
--- a/lib/libalpm/Makefile.am
+++ b/lib/libalpm/Makefile.am
@@ -1,6 +1,10 @@
AUTOMAKE_OPTIONS = gnu
DEFINES = -pedantic -D_GNU_SOURCE
AM_CFLAGS = $(DEFINES)
+SUBDIRS = po
+
+localedir = $(datadir)/locale
+DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@
TARGETS = md5driver.c \
md5.c \
diff --git a/lib/libalpm/po/LINGUAS b/lib/libalpm/po/LINGUAS
new file mode 100644
index 00000000..cd849b16
--- /dev/null
+++ b/lib/libalpm/po/LINGUAS
@@ -0,0 +1,5 @@
+# Example for use of GNU gettext.
+# Copyright (C) 2003-2005 Free Software Foundation, Inc.
+# This file is in the public domain.
+#
+# Set of available languages.
diff --git a/lib/libalpm/po/Makefile.in.in b/lib/libalpm/po/Makefile.in.in
new file mode 100644
index 00000000..dd08e989
--- /dev/null
+++ b/lib/libalpm/po/Makefile.in.in
@@ -0,0 +1,356 @@
+# Makefile for PO directory in any package using GNU gettext.
+# Copyright (C) 1995-1997, 2000-2003 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.13
+
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
+
+SHELL = /bin/sh
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+top_builddir = @top_srcdir@
+VPATH = @srcdir@
+
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+datadir = @datadir@
+localedir = $(datadir)/locale
+gettextsrcdir = $(datadir)/gettext/po
+
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+mkinstalldirs = $(SHELL) $(MKINSTALLDIRS)
+
+GMSGFMT = @GMSGFMT@
+MSGFMT = @MSGFMT@
+XGETTEXT = @XGETTEXT@
+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 $(DOMAIN).pot stamp-po \
+$(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-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 -o $${lang}.gmo $${lang}.po"; \
+ cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo
+
+.sin.sed:
+ sed -e '/^#/d' $< > t-$@
+ mv t-$@ $@
+
+
+all: all-@USE_NLS@
+
+all-yes: stamp-po
+all-no:
+
+# 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 -z "$(GMOFILES)" || $(MAKE) $(GMOFILES)
+ @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
+ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
+ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \
+ --files-from=$(srcdir)/POTFILES.in \
+ --copyright-holder='$(COPYRIGHT_HOLDER)' \
+ --msgid-bugs-address='$(MSGID_BUGS_ADDRESS)'
+ 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$$//'`; \
+ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+ echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
+ cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot
+
+
+install: install-exec install-data
+install-exec:
+install-data: install-data-@USE_NLS@
+ if test "$(PACKAGE)" = "gettext-tools"; then \
+ $(mkinstalldirs) $(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
+ $(mkinstalldirs) $(DESTDIR)$(datadir)
+ @catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+ dir=$(localedir)/$$lang/LC_MESSAGES; \
+ $(mkinstalldirs) $(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 \
+ $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
+ else \
+ : ; \
+ fi
+installdirs-data-no:
+installdirs-data-yes:
+ $(mkinstalldirs) $(DESTDIR)$(datadir)
+ @catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+ dir=$(localedir)/$$lang/LC_MESSAGES; \
+ $(mkinstalldirs) $(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: $(DISTFILES)
+ dists="$(DISTFILES)"; \
+ if test "$(PACKAGE)" = "gettext-tools"; then \
+ dists="$$dists Makevars.template"; \
+ 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); \
+ else \
+ cp -p $(srcdir)/$$file $(distdir); \
+ fi; \
+ done
+
+update-po: Makefile
+ $(MAKE) $(DOMAIN).pot-update
+ test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES)
+ $(MAKE) update-gmo
+
+# 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) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
+ cd $(srcdir); \
+ if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; 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)
+ @:
+
+Makefile: Makefile.in.in $(top_builddir)/config.status @POMAKEFILEDEPS@
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
+ $(SHELL) ./config.status
+
+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/lib/libalpm/po/Makevars b/lib/libalpm/po/Makevars
new file mode 100644
index 00000000..12e3233f
--- /dev/null
+++ b/lib/libalpm/po/Makevars
@@ -0,0 +1,43 @@
+# Makefile variables for PO directory in any package using GNU gettext.
+
+# Usually the message domain is the same as the package name.
+DOMAIN = libalpm
+
+# These two variables depend on the location of this directory.
+subdir = po
+top_builddir = ../../../
+
+# These options get passed to xgettext.
+XGETTEXT_OPTIONS = \
+ --keyword=_ --flag=_:1:pass-c-format \
+ --keyword=N_ --flag=N_:1:pass-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. (Note that the msgstr strings, extracted from the package's
+# sources, belong to the copyright holder of the package.) Translators are
+# expected to transfer the copyright for their translations to this person
+# or entity, or to disclaim their copyright. The empty string stands for
+# the public domain; in this case the translators are expected to disclaim
+# their copyright.
+COPYRIGHT_HOLDER = Judd Vinet
+
+# This is the email address or URL to which the translators shall report
+# bugs in the untranslated strings:
+# - Strings which are not entire sentences, see the maintainer guidelines
+# in the GNU gettext documentation, section 'Preparing Strings'.
+# - Strings which use unclear terms or require additional context to be
+# understood.
+# - Strings which make invalid assumptions about notation of date, time or
+# money.
+# - Pluralisation problems.
+# - Incorrect English spelling.
+# - Incorrect formatting.
+# It can be your email address, or a mailing list address where translators
+# can write to without being subscribed, or the URL of a web page through
+# which the translators can contact you.
+MSGID_BUGS_ADDRESS = pacman-dev@archlinux.org
+
+# 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/lib/libalpm/po/POTFILES.in b/lib/libalpm/po/POTFILES.in
new file mode 100644
index 00000000..804d6270
--- /dev/null
+++ b/lib/libalpm/po/POTFILES.in
@@ -0,0 +1,22 @@
+add.c
+alpm.c
+backup.c
+be_files.c
+cache.c
+conflict.c
+db.c
+deps.c
+error.c
+group.c
+handle.c
+list.c
+log.c
+md5.c
+md5driver.c
+package.c
+provide.c
+remove.c
+sync.c
+trans.c
+util.c
+versioncmp.c
diff --git a/lib/libalpm/po/libalpm.pot b/lib/libalpm/po/libalpm.pot
new file mode 100644
index 00000000..03bc06ad
--- /dev/null
+++ b/lib/libalpm/po/libalpm.pot
@@ -0,0 +1,1075 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-05-31 12:01-0700\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../add.c:85
+#, c-format
+msgid "could not parse token %s"
+msgstr ""
+
+#: ../add.c:117
+#, c-format
+msgid "loading target '%s'"
+msgstr ""
+
+#: ../add.c:159
+#, c-format
+msgid "replacing older version %s-%s by %s in target list"
+msgstr ""
+
+#: ../add.c:168
+#, c-format
+msgid "newer version %s-%s is in the target list -- skipping"
+msgstr ""
+
+#: ../add.c:175
+#, c-format
+msgid "reading '%s' metadata"
+msgstr ""
+
+#. look for unsatisfied dependencies
+#: ../add.c:214 ../remove.c:83
+msgid "looking for unsatisfied dependencies"
+msgstr ""
+
+#. no unsatisfied deps, so look for conflicts
+#: ../add.c:226 ../sync.c:449
+msgid "looking for conflicts"
+msgstr ""
+
+#. re-order w.r.t. dependencies
+#: ../add.c:238 ../remove.c:119
+msgid "sorting by dependencies"
+msgstr ""
+
+#: ../add.c:254
+msgid "looking for file conflicts"
+msgstr ""
+
+#: ../add.c:310
+#, c-format
+msgid "upgrading package %s-%s"
+msgstr ""
+
+#: ../add.c:316 ../alpm.c:447 ../conflict.c:273 ../conflict.c:303
+#, c-format
+msgid "loading FILES info for '%s'"
+msgstr ""
+
+#: ../add.c:324 ../alpm.c:427 ../alpm.c:555
+#, c-format
+msgid "loading DESC info for '%s'"
+msgstr ""
+
+#: ../add.c:336
+#, c-format
+msgid "removing old package first (%s-%s)"
+msgstr ""
+
+#: ../add.c:365
+#, c-format
+msgid "adding package %s-%s"
+msgstr ""
+
+#: ../add.c:372
+#, c-format
+msgid "adding new package %s-%s"
+msgstr ""
+
+#: ../add.c:376
+msgid "extracting files"
+msgstr ""
+
+#: ../add.c:411
+#, c-format
+msgid "notice: %s is in NoExtract -- skipping extraction"
+msgstr ""
+
+#: ../add.c:442 ../add.c:561 ../util.c:235
+#, c-format
+msgid "could not extract %s (%s)"
+msgstr ""
+
+#: ../add.c:473
+#, c-format
+msgid "checking md5 hashes for %s"
+msgstr ""
+
+#: ../add.c:474
+#, c-format
+msgid "current: %s"
+msgstr ""
+
+#: ../add.c:475
+#, c-format
+msgid "new: %s"
+msgstr ""
+
+#: ../add.c:477
+#, c-format
+msgid "original: %s"
+msgstr ""
+
+#: ../add.c:489
+#, c-format
+msgid "could not rename %s (%s)"
+msgstr ""
+
+#: ../add.c:490
+#, c-format
+msgid "error: could not rename %s (%s)"
+msgstr ""
+
+#: ../add.c:493 ../add.c:530
+#, c-format
+msgid "could not copy %s to %s (%s)"
+msgstr ""
+
+#: ../add.c:494
+#, c-format
+msgid "error: could not copy %s to %s (%s)"
+msgstr ""
+
+#: ../add.c:497
+#, c-format
+msgid "%s saved as %s.pacorig"
+msgstr ""
+
+#: ../add.c:498
+#, c-format
+msgid "warning: %s saved as %s"
+msgstr ""
+
+#: ../add.c:508 ../add.c:511 ../add.c:517
+msgid "action: installing new file"
+msgstr ""
+
+#: ../add.c:515
+msgid "action: leaving existing file in place"
+msgstr ""
+
+#: ../add.c:520
+msgid "action: leaving file in place, installing new one as .pacnew"
+msgstr ""
+
+#: ../add.c:523 ../add.c:548
+#, c-format
+msgid "extracting %s as %s.pacnew"
+msgstr ""
+
+#: ../add.c:524 ../add.c:549
+#, c-format
+msgid "warning: extracting %s%s as %s"
+msgstr ""
+
+#: ../add.c:528 ../add.c:544
+#, c-format
+msgid "extracting %s"
+msgstr ""
+
+#: ../add.c:546
+#, c-format
+msgid "%s is in NoUpgrade -- skipping"
+msgstr ""
+
+#: ../add.c:562
+#, c-format
+msgid "error: could not extract %s (%s)"
+msgstr ""
+
+#: ../add.c:573
+msgid "appending backup entry"
+msgstr ""
+
+#: ../add.c:593 ../add.c:595
+#, c-format
+msgid "errors occurred while %s %s"
+msgstr ""
+
+#: ../add.c:594 ../add.c:596
+msgid "upgrading"
+msgstr ""
+
+#: ../add.c:594 ../add.c:596
+msgid "installing"
+msgstr ""
+
+#: ../add.c:617 ../add.c:668
+#, c-format
+msgid "adding '%s' in requiredby field for '%s'"
+msgstr ""
+
+#. remove the package from the database
+#: ../add.c:628 ../remove.c:247
+msgid "updating database"
+msgstr ""
+
+#: ../add.c:629
+#, c-format
+msgid "adding database entry '%s'"
+msgstr ""
+
+#: ../add.c:631
+#, c-format
+msgid "could not update database entry %s-%s"
+msgstr ""
+
+#: ../add.c:633
+#, c-format
+msgid "error updating database for %s-%s!"
+msgstr ""
+
+#: ../add.c:637
+#, c-format
+msgid "could not add entry '%s' in cache"
+msgstr ""
+
+#. update dependency packages' REQUIREDBY fields
+#: ../add.c:642 ../remove.c:257
+msgid "updating dependency packages 'requiredby' fields"
+msgstr ""
+
+#: ../add.c:663 ../remove.c:285
+#, c-format
+msgid "could not find dependency '%s'"
+msgstr ""
+
+#: ../add.c:671 ../remove.c:295
+#, c-format
+msgid "could not update 'requiredby' database entry %s-%s"
+msgstr ""
+
+#. run ldconfig if it exists
+#: ../add.c:692 ../remove.c:307
+#, c-format
+msgid "running \"ldconfig -r %s\""
+msgstr ""
+
+#: ../alpm.c:193
+#, c-format
+msgid "registering database '%s'"
+msgstr ""
+
+#: ../alpm.c:198
+#, c-format
+msgid "database directory '%s' does not exist -- try creating it"
+msgstr ""
+
+#: ../alpm.c:209
+#, c-format
+msgid "opening database '%s'"
+msgstr ""
+
+#: ../alpm.c:253
+#, c-format
+msgid "unregistering database '%s'"
+msgstr ""
+
+#: ../alpm.c:258
+#, c-format
+msgid "closing database '%s'"
+msgstr ""
+
+#. remove the old dir
+#: ../alpm.c:308
+#, c-format
+msgid "flushing database %s/%s"
+msgstr ""
+
+#: ../alpm.c:312
+#, c-format
+msgid "could not remove database entry %s/%s"
+msgstr ""
+
+#. uncompress the sync database
+#. ORE
+#. we should not simply unpack the archive, but better parse it and
+#. db_write each entry (see sync_load_dbarchive to get archive content)
+#: ../alpm.c:326
+#, c-format
+msgid "unpacking %s"
+msgstr ""
+
+#: ../alpm.c:454
+#, c-format
+msgid "loading SCRIPLET info for '%s'"
+msgstr ""
+
+#: ../alpm.c:549
+#, c-format
+msgid "could not get md5 checksum for package %s-%s\n"
+msgstr ""
+
+#: ../alpm.c:560
+#, c-format
+msgid "checksums for package %s-%s are matching"
+msgstr ""
+
+#: ../alpm.c:563
+#, c-format
+msgid "md5sums do not match for package %s-%s\n"
+msgstr ""
+
+#: ../alpm.c:810
+#, c-format
+msgid "could not remove lock file %s"
+msgstr ""
+
+#: ../alpm.c:811
+#, c-format
+msgid "warning: could not remove lock file %s"
+msgstr ""
+
+#: ../be_files.c:142
+#, c-format
+msgid "invalid name for dabatase entry '%s'"
+msgstr ""
+
+#: ../be_files.c:379
+#, c-format
+msgid "db_write: could not open file %s/desc"
+msgstr ""
+
+#: ../be_files.c:450
+#, c-format
+msgid "db_write: could not open file %s/files"
+msgstr ""
+
+#: ../be_files.c:476
+#, c-format
+msgid "db_write: could not open file %s/depends"
+msgstr ""
+
+#: ../cache.c:55
+#, c-format
+msgid "loading package cache (infolevel=%#x) for repository '%s'"
+msgstr ""
+
+#: ../cache.c:75
+#, c-format
+msgid "freeing package cache for repository '%s'"
+msgstr ""
+
+#: ../cache.c:110
+#, c-format
+msgid "adding entry '%s' in '%s' cache"
+msgstr ""
+
+#: ../cache.c:132
+#, c-format
+msgid "removing entry '%s' from '%s' cache"
+msgstr ""
+
+#: ../cache.c:163
+#, c-format
+msgid "loading group cache for repository '%s'"
+msgstr ""
+
+#. CHECK 1: check targets against database
+#: ../conflict.c:63
+#, c-format
+msgid "checkconflicts: targ '%s' vs db"
+msgstr ""
+
+#. conflict
+#. confict
+#: ../conflict.c:72 ../conflict.c:86
+#, c-format
+msgid "targs vs db: found %s as a conflict for %s"
+msgstr ""
+
+#. CHECK 2: check targets against targets
+#: ../conflict.c:99
+#, c-format
+msgid "checkconflicts: targ '%s' vs targs"
+msgstr ""
+
+#. otp is listed in tp's conflict list
+#: ../conflict.c:108 ../conflict.c:121
+#, c-format
+msgid "targs vs targs: found %s as a conflict for %s"
+msgstr ""
+
+#. CHECK 3: check database against targets
+#: ../conflict.c:135
+#, c-format
+msgid "checkconflicts: db vs targ '%s'"
+msgstr ""
+
+#: ../conflict.c:162 ../conflict.c:177
+#, c-format
+msgid "db vs targs: found %s as a conflict for %s"
+msgstr ""
+
+#: ../conflict.c:226 ../conflict.c:335 ../deps.c:48 ../deps.c:568
+#: ../deps.c:608 ../group.c:40 ../handle.c:50 ../package.c:93 ../sync.c:58
+#: ../sync.c:580 ../sync.c:596 ../sync.c:692 ../trans.c:46
+#, c-format
+msgid "malloc failure: could not allocate %d bytes"
+msgstr ""
+
+#: ../db.c:47 ../db.c:54
+#, c-format
+msgid "malloc failed: could not allocate %d bytes"
+msgstr ""
+
+#: ../deps.c:116
+msgid "possible dependency cycle detected"
+msgstr ""
+
+#: ../deps.c:243 ../deps.c:374
+#, c-format
+msgid "checkdeps: found %s as required by %s"
+msgstr ""
+
+#: ../deps.c:353
+#, c-format
+msgid "checkdeps: found %s as a dependency for %s"
+msgstr ""
+
+#: ../deps.c:461
+#, c-format
+msgid "cannot find package \"%s\" or anything that provides it!"
+msgstr ""
+
+#: ../deps.c:466
+msgid "dep is NULL!"
+msgstr ""
+
+#: ../deps.c:478
+#, c-format
+msgid "excluding %s -- explicitly installed"
+msgstr ""
+
+#. add it to the target list
+#: ../deps.c:495
+#, c-format
+msgid "loading ALL info for '%s'"
+msgstr ""
+
+#: ../deps.c:498
+#, c-format
+msgid "adding '%s' to the targets"
+msgstr ""
+
+#: ../deps.c:540
+#, c-format
+msgid "%s provides dependency %s -- skipping"
+msgstr ""
+
+#: ../deps.c:564
+#, c-format
+msgid ""
+"cannot resolve dependencies for \"%s\" (\"%s\" is not in the package set)"
+msgstr ""
+
+#. this dep is already in the target list
+#: ../deps.c:581
+#, c-format
+msgid "dependency %s is already in the target list -- skipping"
+msgstr ""
+
+#: ../deps.c:601
+#, c-format
+msgid "pulling dependency %s (needed by %s)"
+msgstr ""
+
+#: ../deps.c:605
+#, c-format
+msgid "cannot resolve dependencies for \"%s\""
+msgstr ""
+
+#. cycle detected -- skip it
+#: ../deps.c:621
+#, c-format
+msgid "dependency cycle detected: %s"
+msgstr ""
+
+#: ../error.c:31
+msgid "out of memory!"
+msgstr ""
+
+#: ../error.c:33 ../error.c:115
+msgid "unexpected error"
+msgstr ""
+
+#: ../error.c:35
+msgid "insufficient privileges"
+msgstr ""
+
+#: ../error.c:37
+msgid "wrong or NULL argument passed"
+msgstr ""
+
+#: ../error.c:39
+msgid "could not find or read file"
+msgstr ""
+
+#: ../error.c:42
+msgid "library not initialized"
+msgstr ""
+
+#: ../error.c:44
+msgid "library already initialized"
+msgstr ""
+
+#: ../error.c:46
+msgid "unable to lock database"
+msgstr ""
+
+#: ../error.c:49
+msgid "could not open database"
+msgstr ""
+
+#: ../error.c:51
+msgid "could not create database"
+msgstr ""
+
+#: ../error.c:53
+msgid "database not initialized"
+msgstr ""
+
+#: ../error.c:55
+msgid "database already registered"
+msgstr ""
+
+#: ../error.c:57
+msgid "could not find database"
+msgstr ""
+
+#: ../error.c:59
+msgid "could not update database"
+msgstr ""
+
+#: ../error.c:61
+msgid "could not remove database entry"
+msgstr ""
+
+#: ../error.c:68
+msgid "could not set parameter"
+msgstr ""
+
+#: ../error.c:71 ../error.c:77
+msgid "transaction not initialized"
+msgstr ""
+
+#: ../error.c:73
+msgid "transaction already initialized"
+msgstr ""
+
+#: ../error.c:75
+msgid "duplicate target"
+msgstr ""
+
+#: ../error.c:79
+msgid "transaction not prepared"
+msgstr ""
+
+#: ../error.c:81
+msgid "transaction aborted"
+msgstr ""
+
+#: ../error.c:83
+msgid "operation not compatible with the transaction type"
+msgstr ""
+
+#: ../error.c:86
+msgid "could not find or read package"
+msgstr ""
+
+#: ../error.c:88
+msgid "invalid or corrupted package"
+msgstr ""
+
+#: ../error.c:90
+msgid "cannot open package file"
+msgstr ""
+
+#: ../error.c:92
+msgid "cannot load package data"
+msgstr ""
+
+#: ../error.c:94
+msgid "package already installed"
+msgstr ""
+
+#: ../error.c:96
+msgid "package not installed or lesser version"
+msgstr ""
+
+#: ../error.c:98
+msgid "package name is not valid"
+msgstr ""
+
+#: ../error.c:101
+msgid "group not found"
+msgstr ""
+
+#: ../error.c:104
+msgid "could not satisfy dependencies"
+msgstr ""
+
+#: ../error.c:106
+msgid "conflicting dependencies"
+msgstr ""
+
+#: ../error.c:108
+msgid "conflicting files"
+msgstr ""
+
+#: ../error.c:111
+msgid "user aborted"
+msgstr ""
+
+#: ../error.c:113
+msgid "internal error"
+msgstr ""
+
+#: ../handle.c:127
+#, c-format
+msgid "PM_OPT_DBPATH set to '%s'"
+msgstr ""
+
+#: ../handle.c:134
+#, c-format
+msgid "PM_OPT_CACHEDIR set to '%s'"
+msgstr ""
+
+#: ../handle.c:151
+#, c-format
+msgid "can't open log file %s"
+msgstr ""
+
+#: ../handle.c:155
+#, c-format
+msgid "PM_OPT_LOGFILE set to '%s'"
+msgstr ""
+
+#: ../handle.c:160
+#, c-format
+msgid "'%s' added to PM_OPT_NOUPGRADE"
+msgstr ""
+
+#: ../handle.c:163
+msgid "PM_OPT_NOUPGRADE flushed"
+msgstr ""
+
+#: ../handle.c:169
+#, c-format
+msgid "'%s' added to PM_OPT_NOEXTRACT"
+msgstr ""
+
+#: ../handle.c:172
+msgid "PM_OPT_NOEXTRACT flushed"
+msgstr ""
+
+#: ../handle.c:178
+#, c-format
+msgid "'%s' added to PM_OPT_IGNOREPKG"
+msgstr ""
+
+#: ../handle.c:181
+msgid "PM_OPT_IGNOREPKG flushed"
+msgstr ""
+
+#: ../handle.c:197
+#, c-format
+msgid "PM_OPT_USESYSLOG set to '%d'"
+msgstr ""
+
+#: ../handle.c:204
+#, c-format
+msgid "PM_OPT_LOGMASK set to '%02x'"
+msgstr ""
+
+#: ../md5driver.c:48
+#, c-format
+msgid "%s can't be opened\n"
+msgstr ""
+
+#: ../package.c:173
+#, c-format
+msgid "could not open file %s"
+msgstr ""
+
+#: ../package.c:190 ../package.c:231
+#, c-format
+msgid "%s: syntax error in description file line %d"
+msgstr ""
+
+#: ../package.c:291
+msgid "could not parse the package description file"
+msgstr ""
+
+#: ../package.c:331
+#, c-format
+msgid "could not remove tempfile %s"
+msgstr ""
+
+#: ../package.c:348
+#, c-format
+msgid "bad package file in %s"
+msgstr ""
+
+#: ../package.c:357
+#, c-format
+msgid "missing package info file in %s"
+msgstr ""
+
+#: ../remove.c:63
+#, c-format
+msgid "could not find %s in database"
+msgstr ""
+
+#: ../remove.c:67
+#, c-format
+msgid "adding %s in the targets list"
+msgstr ""
+
+#: ../remove.c:93
+#, c-format
+msgid "pulling %s in the targets list"
+msgstr ""
+
+#: ../remove.c:96
+#, c-format
+msgid "could not find %s in database -- skipping"
+msgstr ""
+
+#: ../remove.c:114
+msgid "finding removable dependencies"
+msgstr ""
+
+#: ../remove.c:154
+#, c-format
+msgid "removing package %s-%s"
+msgstr ""
+
+#: ../remove.c:164
+msgid "removing files"
+msgstr ""
+
+#: ../remove.c:183
+#, c-format
+msgid "file %s does not exist"
+msgstr ""
+
+#. this is okay, other packages are probably using it.
+#: ../remove.c:189
+#, c-format
+msgid "keeping directory %s"
+msgstr ""
+
+#: ../remove.c:191
+#, c-format
+msgid "removing directory %s"
+msgstr ""
+
+#: ../remove.c:205
+#, c-format
+msgid "skipping removal of %s as it has moved to another package"
+msgstr ""
+
+#: ../remove.c:217 ../remove.c:218
+#, c-format
+msgid "%s saved as %s"
+msgstr ""
+
+#: ../remove.c:220 ../remove.c:227
+#, c-format
+msgid "unlinking %s"
+msgstr ""
+
+#: ../remove.c:222 ../remove.c:229
+#, c-format
+msgid "cannot remove file %s"
+msgstr ""
+
+#: ../remove.c:248
+#, c-format
+msgid "removing database entry '%s'"
+msgstr ""
+
+#: ../remove.c:250
+#, c-format
+msgid "could not remove database entry %s-%s"
+msgstr ""
+
+#: ../remove.c:253
+#, c-format
+msgid "could not remove entry '%s' from cache"
+msgstr ""
+
+#: ../remove.c:293
+#, c-format
+msgid "updating 'requiredby' field for package '%s'"
+msgstr ""
+
+#. check for "recommended" package replacements
+#: ../sync.c:142
+msgid "checking for package replacements"
+msgstr ""
+
+#: ../sync.c:151
+#, c-format
+msgid "checking replacement '%s' for package '%s'"
+msgstr ""
+
+#: ../sync.c:153
+#, c-format
+msgid "%s-%s: ignoring package upgrade (to be replaced by %s-%s)"
+msgstr ""
+
+#: ../sync.c:187
+#, c-format
+msgid "%s-%s elected for upgrade (to be replaced by %s-%s)"
+msgstr ""
+
+#. match installed packages with the sync dbs and compare versions
+#: ../sync.c:199
+msgid "checking for package upgrades"
+msgstr ""
+
+#: ../sync.c:211
+#, c-format
+msgid "'%s' not found in sync db -- skipping"
+msgstr ""
+
+#: ../sync.c:225
+#, c-format
+msgid "'%s' is already elected for removal -- skipping"
+msgstr ""
+
+#. local version is newer
+#: ../sync.c:234
+#, c-format
+msgid "%s-%s: local version is newer"
+msgstr ""
+
+#. package should be ignored (IgnorePkg)
+#: ../sync.c:240
+#, c-format
+msgid "%s-%s: ignoring package upgrade (%s)"
+msgstr ""
+
+#: ../sync.c:243
+#, c-format
+msgid "%s-%s elected for upgrade (%s => %s)"
+msgstr ""
+
+#. Search provides
+#: ../sync.c:294 ../sync.c:313
+#, c-format
+msgid "target '%s' not found -- looking for provisions"
+msgstr ""
+
+#: ../sync.c:299 ../sync.c:318
+#, c-format
+msgid "found '%s' as a provision for '%s'"
+msgstr ""
+
+#: ../sync.c:337
+#, c-format
+msgid "%s-%s: local version is newer -- skipping"
+msgstr ""
+
+#: ../sync.c:345
+#, c-format
+msgid "%s-%s is up to date -- skipping"
+msgstr ""
+
+#: ../sync.c:365
+#, c-format
+msgid "adding target '%s' to the transaction set"
+msgstr ""
+
+#: ../sync.c:405
+msgid "resolving targets dependencies"
+msgstr ""
+
+#: ../sync.c:424
+#, c-format
+msgid "adding package %s-%s to the transaction targets"
+msgstr ""
+
+#: ../sync.c:430
+msgid "looking for unresolvable dependencies"
+msgstr ""
+
+#: ../sync.c:460
+#, c-format
+msgid "package '%s' is conflicting with '%s'"
+msgstr ""
+
+#. so just treat it like a "replaces" item so the REQUIREDBY
+#. * fields are inherited properly.
+#.
+#: ../sync.c:494
+#, c-format
+msgid "package '%s' provides its own conflict"
+msgstr ""
+
+#: ../sync.c:517 ../sync.c:522
+#, c-format
+msgid "'%s' is in the target list -- keeping it"
+msgstr ""
+
+#: ../sync.c:532 ../sync.c:570
+#, c-format
+msgid "removing '%s' from target list"
+msgstr ""
+
+#. It's a conflict -- see if they want to remove it
+#.
+#: ../sync.c:542
+#, c-format
+msgid "resolving package '%s' conflict"
+msgstr ""
+
+#. append to the replaces list
+#: ../sync.c:565
+#, c-format
+msgid "electing '%s' for removal"
+msgstr ""
+
+#. abort
+#: ../sync.c:576 ../sync.c:592
+msgid "unresolvable package conflicts detected"
+msgstr ""
+
+#: ../sync.c:658
+msgid "something has gone horribly wrong"
+msgstr ""
+
+#. found matching provisio -- we're good to go
+#: ../sync.c:677
+#, c-format
+msgid "found '%s' as a provision for '%s' -- conflict aborted"
+msgstr ""
+
+#: ../sync.c:736
+msgid "could not create removal transaction"
+msgstr ""
+
+#: ../sync.c:743
+msgid "could not initialize the removal transaction"
+msgstr ""
+
+#: ../sync.c:763
+msgid "removing conflicting and to-be-replaced packages"
+msgstr ""
+
+#: ../sync.c:765
+msgid "could not prepare removal transaction"
+msgstr ""
+
+#: ../sync.c:771
+msgid "could not commit removal transaction"
+msgstr ""
+
+#. install targets
+#: ../sync.c:778
+msgid "installing packages"
+msgstr ""
+
+#: ../sync.c:781
+msgid "could not create transaction"
+msgstr ""
+
+#: ../sync.c:787
+msgid "could not initialize transaction"
+msgstr ""
+
+#: ../sync.c:806
+msgid "could not prepare transaction"
+msgstr ""
+
+#: ../sync.c:810
+msgid "could not commit transaction"
+msgstr ""
+
+#: ../sync.c:817
+msgid "updating database for replaced packages dependencies"
+msgstr ""
+
+#: ../sync.c:846
+#, c-format
+msgid "could not update requiredby for database entry %s-%s"
+msgstr ""
+
+#: ../sync.c:855
+#, c-format
+msgid "could not update new database entry %s-%s"
+msgstr ""
+
+#: ../util.c:227
+#, c-format
+msgid "bad tar archive: %s"
+msgstr ""
+
+#: ../util.c:383
+msgid "could not create temp directory"
+msgstr ""
+
+#: ../util.c:403
+msgid "could not get current working directory"
+msgstr ""
+
+#: ../util.c:410
+#, c-format
+msgid "could not change directory to %s (%s)"
+msgstr ""
+
+#: ../util.c:413
+#, c-format
+msgid "executing %s script..."
+msgstr ""
+
+#: ../util.c:426
+#, c-format
+msgid "could not fork a new process (%s)"
+msgstr ""
+
+#: ../util.c:432
+#, c-format
+msgid "chrooting in %s"
+msgstr ""
+
+#: ../util.c:434
+#, c-format
+msgid "could not change the root directory (%s)"
+msgstr ""
+
+#: ../util.c:438
+#, c-format
+msgid "could not change directory to / (%s)"
+msgstr ""
+
+#: ../util.c:442
+#, c-format
+msgid "executing \"%s\""
+msgstr ""
+
+#: ../util.c:447
+#, c-format
+msgid "call to waitpid failed (%s)"
+msgstr ""
+
+#: ../util.c:455
+#, c-format
+msgid "could not remove tmpdir %s"
+msgstr ""
diff --git a/lib/libalpm/po/stamp-po b/lib/libalpm/po/stamp-po
new file mode 100644
index 00000000..9788f702
--- /dev/null
+++ b/lib/libalpm/po/stamp-po
@@ -0,0 +1 @@
+timestamp
diff --git a/src/pacman/Makefile.am b/src/pacman/Makefile.am
index 0a05bd7e..8ebe02d5 100644
--- a/src/pacman/Makefile.am
+++ b/src/pacman/Makefile.am
@@ -1,5 +1,10 @@
bin_PROGRAMS = pacman pacman.static
+SUBDIRS = po
+
+localedir = $(datadir)/locale
+DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@
+
AM_CFLAGS = -D_GNU_SOURCE \
-I$(top_srcdir)/lib/libalpm \
-I$(top_srcdir)/lib/libftp
diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c
index 3678f628..381053a3 100644
--- a/src/pacman/pacman.c
+++ b/src/pacman/pacman.c
@@ -28,6 +28,7 @@
#include <signal.h>
#include <unistd.h>
#include <libintl.h>
+#include <locale.h>
#ifndef CYGWIN
#include <mcheck.h> /* debug */
#else
@@ -379,7 +380,7 @@ static void cleanup(int signum)
int main(int argc, char *argv[])
{
int ret = 0;
- char *cenv = NULL;
+ char *cenv = NULL, *lang = NULL;
#ifndef CYGWIN
uid_t myuid;
#endif
@@ -399,6 +400,17 @@ int main(int argc, char *argv[])
signal(SIGINT, cleanup);
signal(SIGTERM, cleanup);
+ /* i18n init */
+ lang=getenv("LC_ALL");
+ if(lang==NULL || lang[0]=='\0')
+ lang=getenv("LC_MESSAGES");
+ if (lang==NULL || lang[0]=='\0')
+ lang=getenv("LANG");
+
+ setlocale(LC_ALL, lang);
+ bindtextdomain("pacman", "/usr/share/locale");
+ textdomain("pacman");
+
/* init config data */
config = config_new();
config->op = PM_OP_MAIN;
diff --git a/src/pacman/po/LINGUAS b/src/pacman/po/LINGUAS
new file mode 100644
index 00000000..bdb700e6
--- /dev/null
+++ b/src/pacman/po/LINGUAS
@@ -0,0 +1,6 @@
+# Example for use of GNU gettext.
+# Copyright (C) 2003-2005 Free Software Foundation, Inc.
+# This file is in the public domain.
+#
+# Set of available languages.
+
diff --git a/src/pacman/po/Makefile.in.in b/src/pacman/po/Makefile.in.in
new file mode 100644
index 00000000..75c5d469
--- /dev/null
+++ b/src/pacman/po/Makefile.in.in
@@ -0,0 +1,355 @@
+# Makefile for PO directory in any package using GNU gettext.
+# Copyright (C) 1995-1997, 2000-2003 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.13
+
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
+
+SHELL = /bin/sh
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+datadir = @datadir@
+localedir = $(datadir)/locale
+gettextsrcdir = $(datadir)/gettext/po
+
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+mkinstalldirs = $(SHELL) $(MKINSTALLDIRS)
+
+GMSGFMT = @GMSGFMT@
+MSGFMT = @MSGFMT@
+XGETTEXT = @XGETTEXT@
+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 $(DOMAIN).pot stamp-po \
+$(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-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 -o $${lang}.gmo $${lang}.po"; \
+ cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo
+
+.sin.sed:
+ sed -e '/^#/d' $< > t-$@
+ mv t-$@ $@
+
+
+all: all-@USE_NLS@
+
+all-yes: stamp-po
+all-no:
+
+# 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 -z "$(GMOFILES)" || $(MAKE) $(GMOFILES)
+ @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
+ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
+ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \
+ --files-from=$(srcdir)/POTFILES.in \
+ --copyright-holder='$(COPYRIGHT_HOLDER)' \
+ --msgid-bugs-address='$(MSGID_BUGS_ADDRESS)'
+ 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$$//'`; \
+ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+ echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
+ cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot
+
+
+install: install-exec install-data
+install-exec:
+install-data: install-data-@USE_NLS@
+ if test "$(PACKAGE)" = "gettext-tools"; then \
+ $(mkinstalldirs) $(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
+ $(mkinstalldirs) $(DESTDIR)$(datadir)
+ @catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+ dir=$(localedir)/$$lang/LC_MESSAGES; \
+ $(mkinstalldirs) $(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 \
+ $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
+ else \
+ : ; \
+ fi
+installdirs-data-no:
+installdirs-data-yes:
+ $(mkinstalldirs) $(DESTDIR)$(datadir)
+ @catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+ dir=$(localedir)/$$lang/LC_MESSAGES; \
+ $(mkinstalldirs) $(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: $(DISTFILES)
+ dists="$(DISTFILES)"; \
+ if test "$(PACKAGE)" = "gettext-tools"; then \
+ dists="$$dists Makevars.template"; \
+ 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); \
+ else \
+ cp -p $(srcdir)/$$file $(distdir); \
+ fi; \
+ done
+
+update-po: Makefile
+ $(MAKE) $(DOMAIN).pot-update
+ test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES)
+ $(MAKE) update-gmo
+
+# 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) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
+ cd $(srcdir); \
+ if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; 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)
+ @:
+
+Makefile: Makefile.in.in $(top_builddir)/config.status @POMAKEFILEDEPS@
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
+ $(SHELL) ./config.status
+
+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..c85b8993
--- /dev/null
+++ b/src/pacman/po/Makevars
@@ -0,0 +1,43 @@
+# 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 = po
+top_builddir = ../../../
+
+# These options get passed to xgettext.
+XGETTEXT_OPTIONS = \
+ --keyword=_ --flag=_:1:pass-c-format \
+ --keyword=N_ --flag=N_:1:pass-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. (Note that the msgstr strings, extracted from the package's
+# sources, belong to the copyright holder of the package.) Translators are
+# expected to transfer the copyright for their translations to this person
+# or entity, or to disclaim their copyright. The empty string stands for
+# the public domain; in this case the translators are expected to disclaim
+# their copyright.
+COPYRIGHT_HOLDER = Yoyodyne, Inc.
+
+# This is the email address or URL to which the translators shall report
+# bugs in the untranslated strings:
+# - Strings which are not entire sentences, see the maintainer guidelines
+# in the GNU gettext documentation, section 'Preparing Strings'.
+# - Strings which use unclear terms or require additional context to be
+# understood.
+# - Strings which make invalid assumptions about notation of date, time or
+# money.
+# - Pluralisation problems.
+# - Incorrect English spelling.
+# - Incorrect formatting.
+# It can be your email address, or a mailing list address where translators
+# can write to without being subscribed, or the URL of a web page through
+# which the translators can contact you.
+MSGID_BUGS_ADDRESS = bug-gnu-gettext@gnu.org
+
+# 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..5e0e64aa
--- /dev/null
+++ b/src/pacman/po/POTFILES.in
@@ -0,0 +1,13 @@
+add.c
+conf.c
+deptest.c
+download.c
+list.c
+log.c
+package.c
+pacman.c
+query.c
+remove.c
+sync.c
+trans.c
+util.c
diff --git a/src/pacman/po/pacman.pot b/src/pacman/po/pacman.pot
new file mode 100644
index 00000000..067659c0
--- /dev/null
+++ b/src/pacman/po/pacman.pot
@@ -0,0 +1,1315 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-05-31 14:04-0700\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../add.c:69 ../deptest.c:64 ../remove.c:83 ../sync.c:413 ../sync.c:452
+#, c-format
+msgid ""
+" if you're sure a package manager is not already running,\n"
+" you can remove %s\n"
+msgstr ""
+
+#. and add targets to it
+#: ../add.c:76
+msgid "loading package data... "
+msgstr ""
+
+#: ../add.c:79 ../remove.c:99
+#, c-format
+msgid "failed to add target '%s' (%s)\n"
+msgstr ""
+
+#: ../add.c:84
+msgid "done."
+msgstr ""
+
+#: ../add.c:91 ../remove.c:109 ../sync.c:522
+#, c-format
+msgid "failed to prepare transaction (%s)\n"
+msgstr ""
+
+#: ../add.c:96
+#, c-format
+msgid ":: %s: requires %s"
+msgstr ""
+
+#: ../add.c:110
+#, c-format
+msgid ":: %s: conflicts with %s"
+msgstr ""
+
+#: ../add.c:120 ../sync.c:752
+#, c-format
+msgid "%s exists in \"%s\" (target) and \"%s\" (target)"
+msgstr ""
+
+#: ../add.c:126 ../sync.c:758
+#, c-format
+msgid "%s: %s exists in filesystem"
+msgstr ""
+
+#: ../add.c:133 ../sync.c:765
+msgid ""
+"\n"
+"errors occurred, no packages were upgraded.\n"
+msgstr ""
+
+#: ../add.c:145 ../remove.c:149 ../sync.c:745
+#, c-format
+msgid "failed to commit transaction (%s)\n"
+msgstr ""
+
+#: ../add.c:154 ../remove.c:160 ../sync.c:445 ../sync.c:785
+#, c-format
+msgid "failed to release transaction (%s)\n"
+msgstr ""
+
+#: ../conf.c:102
+#, c-format
+msgid "config: new section '%s'\n"
+msgstr ""
+
+#: ../conf.c:104
+#, c-format
+msgid "config: line %d: bad section name\n"
+msgstr ""
+
+#: ../conf.c:108
+#, c-format
+msgid ""
+"config: line %d: '%s' is reserved and cannot be used as a package tree\n"
+msgstr ""
+
+#: ../conf.c:134 ../conf.c:156 ../conf.c:279 ../conf.c:345
+#, c-format
+msgid "config: line %d: syntax error\n"
+msgstr ""
+
+#: ../conf.c:140
+#, c-format
+msgid "config: line %d: all directives must belong to a section\n"
+msgstr ""
+
+#: ../conf.c:146
+msgid "config: nopassiveftp\n"
+msgstr ""
+
+#: ../conf.c:149
+#, c-format
+msgid "failed to set option USESYSLOG (%s)\n"
+msgstr ""
+
+#: ../conf.c:152
+msgid "config: usesyslog\n"
+msgstr ""
+
+#: ../conf.c:164
+#, c-format
+msgid "config: including %s\n"
+msgstr ""
+
+#: ../conf.c:173 ../conf.c:181
+#, c-format
+msgid "failed to set option NOUPGRADE (%s)\n"
+msgstr ""
+
+#: ../conf.c:176 ../conf.c:184
+#, c-format
+msgid "config: noupgrade: %s\n"
+msgstr ""
+
+#: ../conf.c:191 ../conf.c:199
+#, c-format
+msgid "failed to set option NOEXTRACT (%s)\n"
+msgstr ""
+
+#: ../conf.c:194 ../conf.c:202
+#, c-format
+msgid "config: noextract: %s\n"
+msgstr ""
+
+#: ../conf.c:209 ../conf.c:217 ../pacman.c:508
+#, c-format
+msgid "failed to set option IGNOREPKG (%s)\n"
+msgstr ""
+
+#: ../conf.c:212 ../conf.c:220
+#, c-format
+msgid "config: ignorepkg: %s\n"
+msgstr ""
+
+#: ../conf.c:227 ../conf.c:232
+#, c-format
+msgid "config: holdpkg: %s\n"
+msgstr ""
+
+#: ../conf.c:240
+#, c-format
+msgid "config: dbpath: %s\n"
+msgstr ""
+
+#: ../conf.c:248
+#, c-format
+msgid "config: cachedir: %s\n"
+msgstr ""
+
+#: ../conf.c:251
+#, c-format
+msgid "failed to set option LOGFILE (%s)\n"
+msgstr ""
+
+#: ../conf.c:254
+#, c-format
+msgid "config: log file: %s\n"
+msgstr ""
+
+#: ../conf.c:258
+#, c-format
+msgid "config: xfercommand: %s\n"
+msgstr ""
+
+#: ../conf.c:268 ../conf.c:294 ../conf.c:300
+#, c-format
+msgid "config: line %d: bad server location\n"
+msgstr ""
+
+#: ../conf.c:274
+#, c-format
+msgid "config: proxyserver: %s\n"
+msgstr ""
+
+#: ../conf.c:277
+#, c-format
+msgid "config: proxyport: %u\n"
+msgstr ""
+
+#: ../conf.c:317 ../conf.c:332
+#, c-format
+msgid "could not allocate %d bytes\n"
+msgstr ""
+
+#: ../conf.c:338
+#, c-format
+msgid "config: line %d: protocol %s is not supported\n"
+msgstr ""
+
+#. add to the list
+#: ../conf.c:342
+#, c-format
+msgid "config: %s: server: %s %s %s\n"
+msgstr ""
+
+#: ../deptest.c:77
+msgid "memory allocation failure\n"
+msgstr ""
+
+#: ../deptest.c:87
+#, c-format
+msgid "add target %s\n"
+msgstr ""
+
+#: ../deptest.c:90
+#, c-format
+msgid "could not add target (%s)\n"
+msgstr ""
+
+#: ../deptest.c:110
+#, c-format
+msgid "requires: %s"
+msgstr ""
+
+#: ../deptest.c:126
+#, c-format
+msgid "conflict: %s"
+msgstr ""
+
+#: ../deptest.c:140 ../deptest.c:157
+#, c-format
+msgid "could not release transaction (%s)"
+msgstr ""
+
+#: ../download.c:208
+#, c-format
+msgid "connecting to %s:21\n"
+msgstr ""
+
+#: ../download.c:210 ../download.c:241 ../download.c:415
+#, c-format
+msgid "cannot connect to %s\n"
+msgstr ""
+
+#: ../download.c:214
+msgid "anonymous login failed\n"
+msgstr ""
+
+#: ../download.c:219
+#, c-format
+msgid "could not cwd to %s: %s\n"
+msgstr ""
+
+#: ../download.c:225
+msgid "failed to set passive mode\n"
+msgstr ""
+
+#: ../download.c:228
+msgid "FTP passive mode not set\n"
+msgstr ""
+
+#: ../download.c:236 ../download.c:410
+#, c-format
+msgid "connecting to %s\n"
+msgstr ""
+
+#: ../download.c:238 ../download.c:412
+#, c-format
+msgid "connecting to %s:%u\n"
+msgstr ""
+
+#: ../download.c:300
+#, c-format
+msgid "could not chdir to %s\n"
+msgstr ""
+
+#. execute the parsed command via /bin/sh -c
+#: ../download.c:304
+#, c-format
+msgid "running command: %s\n"
+msgstr ""
+
+#: ../download.c:307
+msgid "running XferCommand: fork failed!\n"
+msgstr ""
+
+#. download failed
+#: ../download.c:311
+#, c-format
+msgid "XferCommand command returned non-zero status code (%d)\n"
+msgstr ""
+
+#: ../download.c:356
+#, c-format
+msgid "failed to get filesize for %s\n"
+msgstr ""
+
+#: ../download.c:362 ../download.c:475
+#, c-format
+msgid "failed to get mtime for %s\n"
+msgstr ""
+
+#. mtimes are identical, skip this file
+#: ../download.c:367 ../download.c:460
+#, c-format
+msgid "mtimes are identical, skipping %s\n"
+msgstr ""
+
+#: ../download.c:382
+msgid "failed to resume download -- restarting\n"
+msgstr ""
+
+#: ../download.c:389 ../download.c:464
+#, c-format
+msgid ""
+"\n"
+"failed downloading %s from %s: %s\n"
+msgstr ""
+
+#: ../download.c:483
+#, c-format
+msgid "copying %s to %s/%s\n"
+msgstr ""
+
+#: ../download.c:486
+#, c-format
+msgid "failed copying %s\n"
+msgstr ""
+
+#: ../download.c:502
+msgid "] 100% LOCAL "
+msgstr ""
+
+#: ../download.c:564
+#, c-format
+msgid " %s is already in the current directory\n"
+msgstr ""
+
+#: ../download.c:578
+#, c-format
+msgid "failed to download %s\n"
+msgstr ""
+
+#: ../list.c:143 ../list.c:171
+#, c-format
+msgid "None\n"
+msgstr ""
+
+#: ../log.c:54
+#, c-format
+msgid "debug"
+msgstr ""
+
+#: ../log.c:57
+#, c-format
+msgid "error"
+msgstr ""
+
+#: ../log.c:60
+#, c-format
+msgid "warning"
+msgstr ""
+
+#: ../log.c:63
+#, c-format
+msgid "flow1"
+msgstr ""
+
+#: ../log.c:66
+#, c-format
+msgid "flow2"
+msgstr ""
+
+#: ../log.c:69
+#, c-format
+msgid "function"
+msgstr ""
+
+#: ../log.c:72
+#, c-format
+msgid "???"
+msgstr ""
+
+#: ../log.c:153
+msgid "Y"
+msgstr ""
+
+#: ../log.c:153
+msgid "YES"
+msgstr ""
+
+#: ../package.c:46
+#, c-format
+msgid "Name : %s\n"
+msgstr ""
+
+#: ../package.c:47
+#, c-format
+msgid "Version : %s\n"
+msgstr ""
+
+#: ../package.c:49
+msgid "Groups :"
+msgstr ""
+
+#: ../package.c:51
+#, c-format
+msgid "Packager : %s\n"
+msgstr ""
+
+#: ../package.c:52
+#, c-format
+msgid "URL : %s\n"
+msgstr ""
+
+#: ../package.c:53
+msgid "License :"
+msgstr ""
+
+#: ../package.c:54
+#, c-format
+msgid "Architecture : %s\n"
+msgstr ""
+
+#: ../package.c:55
+#, c-format
+msgid "Size : %ld\n"
+msgstr ""
+
+#: ../package.c:58
+#, c-format
+msgid "Build Date : %s %s\n"
+msgstr ""
+
+#: ../package.c:60
+#, c-format
+msgid "Install Date : %s %s\n"
+msgstr ""
+
+#: ../package.c:62
+#, c-format
+msgid "Install Script : %s\n"
+msgstr ""
+
+#: ../package.c:64
+#, c-format
+msgid "Reason: : "
+msgstr ""
+
+#: ../package.c:67
+#, c-format
+msgid "Explicitly installed\n"
+msgstr ""
+
+#: ../package.c:70
+#, c-format
+msgid "Installed as a dependency for another package\n"
+msgstr ""
+
+#: ../package.c:73
+#, c-format
+msgid "Unknown\n"
+msgstr ""
+
+#: ../package.c:77
+msgid "Provides :"
+msgstr ""
+
+#: ../package.c:78
+msgid "Depends On :"
+msgstr ""
+
+#: ../package.c:79
+msgid "Required By :"
+msgstr ""
+
+#: ../package.c:80
+msgid "Conflicts With :"
+msgstr ""
+
+#: ../package.c:82
+#, c-format
+msgid "Description : "
+msgstr ""
+
+#: ../package.c:106
+#, c-format
+msgid "error calculating md5sum for %s\n"
+msgstr ""
+
+#: ../package.c:110
+#, c-format
+msgid "%sMODIFIED\t%s\n"
+msgstr ""
+
+#: ../package.c:113
+#, c-format
+msgid "MISSING\t\t%s\n"
+msgstr ""
+
+#: ../package.c:131
+#, c-format
+msgid "Repository : %s\n"
+msgstr ""
+
+#: ../package.c:132
+#, c-format
+msgid "Name : %s\n"
+msgstr ""
+
+#: ../package.c:133
+#, c-format
+msgid "Version : %s\n"
+msgstr ""
+
+#: ../package.c:135
+msgid "Groups :"
+msgstr ""
+
+#: ../package.c:136
+msgid "Provides :"
+msgstr ""
+
+#: ../package.c:137
+msgid "Depends On :"
+msgstr ""
+
+#: ../package.c:138
+msgid "Conflicts With :"
+msgstr ""
+
+#: ../package.c:139
+msgid "Replaces :"
+msgstr ""
+
+#: ../package.c:141
+#, c-format
+msgid "Size (compressed) : %ld\n"
+msgstr ""
+
+#: ../package.c:142
+#, c-format
+msgid "Description : "
+msgstr ""
+
+#: ../package.c:144
+#, c-format
+msgid ""
+"\n"
+"MD5 Sum : %s\n"
+msgstr ""
+
+#: ../package.c:156
+#, c-format
+msgid "%s %s\n"
+msgstr ""
+
+#: ../pacman.c:82
+#, c-format
+msgid "\n"
+msgstr ""
+
+#: ../pacman.c:83
+#, c-format
+msgid " .--. Pacman v%s - libalpm v%s\n"
+msgstr ""
+
+#: ../pacman.c:84
+#, c-format
+msgid ""
+"/ _.-' .-. .-. .-. Copyright (C) 2002-2006 Judd Vinet <jvinet@zeroflux."
+"org>\n"
+msgstr ""
+
+#: ../pacman.c:85
+#, c-format
+msgid "\\ '-. '-' '-' '-' \n"
+msgstr ""
+
+#: ../pacman.c:86
+#, c-format
+msgid " '--' This program may be freely redistributed under\n"
+msgstr ""
+
+#: ../pacman.c:87
+#, c-format
+msgid " the terms of the GNU General Public License\n"
+msgstr ""
+
+#: ../pacman.c:98
+#, c-format
+msgid "usage: %s {-h --help}\n"
+msgstr ""
+
+#: ../pacman.c:99
+#, c-format
+msgid " %s {-V --version}\n"
+msgstr ""
+
+#: ../pacman.c:100
+#, c-format
+msgid " %s {-A --add} [options] <file>\n"
+msgstr ""
+
+#: ../pacman.c:101
+#, c-format
+msgid " %s {-R --remove} [options] <package>\n"
+msgstr ""
+
+#: ../pacman.c:102
+#, c-format
+msgid " %s {-U --upgrade} [options] <file>\n"
+msgstr ""
+
+#: ../pacman.c:103
+#, c-format
+msgid " %s {-F --freshen} [options] <file>\n"
+msgstr ""
+
+#: ../pacman.c:104
+#, c-format
+msgid " %s {-Q --query} [options] [package]\n"
+msgstr ""
+
+#: ../pacman.c:105
+#, c-format
+msgid " %s {-S --sync} [options] [package]\n"
+msgstr ""
+
+#: ../pacman.c:106
+#, c-format
+msgid ""
+"\n"
+"use '%s --help' with other options for more syntax\n"
+msgstr ""
+
+#: ../pacman.c:109
+#, c-format
+msgid "usage: %s {-A --add} [options] <file>\n"
+msgstr ""
+
+#: ../pacman.c:110 ../pacman.c:115 ../pacman.c:127 ../pacman.c:132
+#: ../pacman.c:145
+#, c-format
+msgid "options:\n"
+msgstr ""
+
+#: ../pacman.c:111 ../pacman.c:117 ../pacman.c:128 ../pacman.c:147
+#, c-format
+msgid " -d, --nodeps skip dependency checks\n"
+msgstr ""
+
+#: ../pacman.c:112 ../pacman.c:129 ../pacman.c:148
+#, c-format
+msgid " -f, --force force install, overwrite conflicting files\n"
+msgstr ""
+
+#: ../pacman.c:114
+#, c-format
+msgid "usage: %s {-R --remove} [options] <package>\n"
+msgstr ""
+
+#: ../pacman.c:116
+#, c-format
+msgid ""
+" -c, --cascade remove packages and all packages that depend on them\n"
+msgstr ""
+
+#: ../pacman.c:118
+#, c-format
+msgid " -k, --dbonly only remove database entry, do not remove files\n"
+msgstr ""
+
+#: ../pacman.c:119
+#, c-format
+msgid " -n, --nosave remove configuration files as well\n"
+msgstr ""
+
+#: ../pacman.c:120
+#, c-format
+msgid ""
+" -s, --recursive remove dependencies also (that won't break packages)\n"
+msgstr ""
+
+#: ../pacman.c:123
+#, c-format
+msgid "usage: %s {-F --freshen} [options] <file>\n"
+msgstr ""
+
+#: ../pacman.c:125
+#, c-format
+msgid "usage: %s {-U --upgrade} [options] <file>\n"
+msgstr ""
+
+#: ../pacman.c:131
+#, c-format
+msgid "usage: %s {-Q --query} [options] [package]\n"
+msgstr ""
+
+#: ../pacman.c:133
+#, c-format
+msgid ""
+" -e, --orphans list all packages that were explicitly installed\n"
+msgstr ""
+
+#: ../pacman.c:134
+#, c-format
+msgid " and are not required by any other packages\n"
+msgstr ""
+
+#: ../pacman.c:135 ../pacman.c:149
+#, c-format
+msgid " -g, --groups view all members of a package group\n"
+msgstr ""
+
+#: ../pacman.c:136
+#, c-format
+msgid " -i, --info view package information\n"
+msgstr ""
+
+#: ../pacman.c:137
+#, c-format
+msgid " -l, --list list the contents of the queried package\n"
+msgstr ""
+
+#: ../pacman.c:138
+#, c-format
+msgid ""
+" -m, --foreign list all packages that were not found in the sync "
+"repos\n"
+msgstr ""
+
+#: ../pacman.c:139
+#, c-format
+msgid " -o, --owns <file> query the package that owns <file>\n"
+msgstr ""
+
+#: ../pacman.c:140
+#, c-format
+msgid ""
+" -p, --file pacman will query the package file [package] instead "
+"of\n"
+msgstr ""
+
+#: ../pacman.c:141
+#, c-format
+msgid " looking in the database\n"
+msgstr ""
+
+#: ../pacman.c:142
+#, c-format
+msgid ""
+" -s, --search search locally-installed packages for matching "
+"strings\n"
+msgstr ""
+
+#: ../pacman.c:144
+#, c-format
+msgid "usage: %s {-S --sync} [options] [package]\n"
+msgstr ""
+
+#: ../pacman.c:146
+#, c-format
+msgid ""
+" -c, --clean remove old packages from cache directory (use -cc for "
+"all)\n"
+msgstr ""
+
+#: ../pacman.c:150
+#, c-format
+msgid ""
+" -p, --print-uris print out URIs for given packages and their "
+"dependencies\n"
+msgstr ""
+
+#: ../pacman.c:151
+#, c-format
+msgid " -s, --search search remote repositories for matching strings\n"
+msgstr ""
+
+#: ../pacman.c:152
+#, c-format
+msgid " -u, --sysupgrade upgrade all packages that are out of date\n"
+msgstr ""
+
+#: ../pacman.c:153
+#, c-format
+msgid ""
+" -w, --downloadonly download packages but do not install/upgrade anything\n"
+msgstr ""
+
+#: ../pacman.c:154
+#, c-format
+msgid ""
+" -y, --refresh download fresh package databases from the server\n"
+msgstr ""
+
+#: ../pacman.c:155
+#, c-format
+msgid ""
+" --ignore <pkg> ignore a package upgrade (can be used more than once)\n"
+msgstr ""
+
+#: ../pacman.c:157
+#, c-format
+msgid " --config <path> set an alternate configuration file\n"
+msgstr ""
+
+#: ../pacman.c:158
+#, c-format
+msgid " --noconfirm do not ask for anything confirmation\n"
+msgstr ""
+
+#: ../pacman.c:159
+#, c-format
+msgid ""
+" --noprogressbar do not show a progress bar when downloading files\n"
+msgstr ""
+
+#: ../pacman.c:160
+#, c-format
+msgid ""
+" --noscriptlet do not execute the install scriptlet if there is any\n"
+msgstr ""
+
+#: ../pacman.c:161
+#, c-format
+msgid " -v, --verbose be verbose\n"
+msgstr ""
+
+#: ../pacman.c:162
+#, c-format
+msgid " -r, --root <path> set an alternate installation root\n"
+msgstr ""
+
+#: ../pacman.c:163
+#, c-format
+msgid " -b, --dbpath <path> set an alternate database location\n"
+msgstr ""
+
+#: ../pacman.c:289
+msgid "bad root path"
+msgstr ""
+
+#: ../pacman.c:315
+msgid "only one operation may be used at a time\n"
+msgstr ""
+
+#: ../pacman.c:347
+#, c-format
+msgid "%s\n"
+msgstr ""
+
+#: ../pacman.c:448
+msgid "you cannot perform this operation unless you are root.\n"
+msgstr ""
+
+#: ../pacman.c:472
+#, c-format
+msgid "failed to initilize alpm library (%s)\n"
+msgstr ""
+
+#: ../pacman.c:485
+#, c-format
+msgid "failed to set option LOGMASK (%s)\n"
+msgstr ""
+
+#: ../pacman.c:489
+#, c-format
+msgid "failed to set option LOGCB (%s)\n"
+msgstr ""
+
+#: ../pacman.c:497
+#, c-format
+msgid "failed to set option DBPATH (%s)\n"
+msgstr ""
+
+#: ../pacman.c:502 ../sync.c:698
+#, c-format
+msgid "failed to set option CACHEDIR (%s)\n"
+msgstr ""
+
+#: ../pacman.c:514
+#, c-format
+msgid "Root : %s\n"
+msgstr ""
+
+#: ../pacman.c:515
+#, c-format
+msgid "DBPath: %s\n"
+msgstr ""
+
+#: ../pacman.c:516
+msgid "Targets:"
+msgstr ""
+
+#: ../pacman.c:522
+#, c-format
+msgid "could not register 'local' database (%s)\n"
+msgstr ""
+
+#: ../pacman.c:529
+msgid "no targets specified (use -h for help)\n"
+msgstr ""
+
+#: ../pacman.c:542
+msgid "no operation specified (use -h for help)\n"
+msgstr ""
+
+#: ../query.c:56
+msgid "no file was specified for --owns\n"
+msgstr ""
+
+#: ../query.c:61
+#, c-format
+msgid "%s is not a file.\n"
+msgstr ""
+
+#: ../query.c:78
+#, c-format
+msgid "%s is owned by %s %s\n"
+msgstr ""
+
+#: ../query.c:86
+#, c-format
+msgid "No package owns %s\n"
+msgstr ""
+
+#: ../query.c:111 ../sync.c:365
+msgid "no usable package repositories configured.\n"
+msgstr ""
+
+#: ../query.c:160
+#, c-format
+msgid "group \"%s\" was not found\n"
+msgstr ""
+
+#: ../query.c:170
+msgid "no package file was specified for --file\n"
+msgstr ""
+
+#: ../query.c:174
+#, c-format
+msgid "failed to load package '%s' (%s)\n"
+msgstr ""
+
+#. something weird happened
+#: ../query.c:212 ../query.c:256
+#, c-format
+msgid "package \"%s\" not found\n"
+msgstr ""
+
+#: ../remove.c:64 ../sync.c:489
+#, c-format
+msgid ":: group %s:\n"
+msgstr ""
+
+#: ../remove.c:66
+msgid " Remove whole content? [Y/n] "
+msgstr ""
+
+#: ../remove.c:68
+#, c-format
+msgid ":: Remove %s from group %s? [Y/n] "
+msgstr ""
+
+#: ../remove.c:81 ../sync.c:411 ../sync.c:450
+#, c-format
+msgid "failed to init transaction (%s)\n"
+msgstr ""
+
+#: ../remove.c:94
+#, c-format
+msgid ":: %s is designated as a HoldPkg. Remove anyway? [Y/n] "
+msgstr ""
+
+#: ../remove.c:114
+#, c-format
+msgid " %s: is required by %s\n"
+msgstr ""
+
+#: ../remove.c:136
+msgid ""
+"\n"
+"Targets:"
+msgstr ""
+
+#. get confirmation
+#: ../remove.c:139
+msgid ""
+"\n"
+"Do you want to remove these packages? [Y/n] "
+msgstr ""
+
+#: ../sync.c:68
+msgid "removing old packages from cache... "
+msgstr ""
+
+#: ../sync.c:71
+msgid "could not access cache directory\n"
+msgstr ""
+
+#. full cleanup
+#: ../sync.c:131
+msgid "removing all packages from cache... "
+msgstr ""
+
+#: ../sync.c:134
+msgid "could not remove cache directory\n"
+msgstr ""
+
+#: ../sync.c:139
+msgid "could not create new cache directory\n"
+msgstr ""
+
+#: ../sync.c:144 ../sync.c:736 ../trans.c:66 ../trans.c:72 ../trans.c:82
+#: ../trans.c:92
+msgid "done.\n"
+msgstr ""
+
+#: ../sync.c:168
+#, c-format
+msgid "failed to get lastupdate time for %s (no big deal)\n"
+msgstr ""
+
+#: ../sync.c:181
+#, c-format
+msgid "failed to synchronize %s\n"
+msgstr ""
+
+#: ../sync.c:184
+#, c-format
+msgid " %s is up to date\n"
+msgstr ""
+
+#: ../sync.c:187
+#, c-format
+msgid "sync: new mtime for %s: %s\n"
+msgstr ""
+
+#: ../sync.c:192
+#, c-format
+msgid "failed to update %s (%s)\n"
+msgstr ""
+
+#: ../sync.c:218
+#, c-format
+msgid ""
+"%s/%s %s\n"
+" "
+msgstr ""
+
+#: ../sync.c:286
+#, c-format
+msgid "package \"%s\" was not found.\n"
+msgstr ""
+
+#: ../sync.c:324
+#, c-format
+msgid "repository \"%s\" was not found.\n"
+msgstr ""
+
+#. grab a fresh package list
+#: ../sync.c:385
+msgid ":: Synchronizing package databases...\n"
+msgstr ""
+
+#: ../sync.c:386
+msgid "synchronizing package lists"
+msgstr ""
+
+#: ../sync.c:420
+msgid ":: Starting local database upgrade...\n"
+msgstr ""
+
+#: ../sync.c:421
+msgid "starting full system upgrade"
+msgstr ""
+
+#: ../sync.c:439
+msgid ""
+"\n"
+":: pacman has detected a newer version of the \"pacman\" package.\n"
+msgstr ""
+
+#: ../sync.c:440
+msgid ":: It is recommended that you allow pacman to upgrade itself\n"
+msgstr ""
+
+#: ../sync.c:441
+msgid ":: first, then you can re-run the operation with the newer version.\n"
+msgstr ""
+
+#: ../sync.c:442
+msgid "::\n"
+msgstr ""
+
+#: ../sync.c:443
+msgid ":: Upgrade pacman first? [Y/n] "
+msgstr ""
+
+#: ../sync.c:458 ../sync.c:478
+#, c-format
+msgid "could not add target '%s': %s\n"
+msgstr ""
+
+#: ../sync.c:495
+msgid ":: Install whole content? [Y/n] "
+msgstr ""
+
+#: ../sync.c:502
+#, c-format
+msgid ":: Install %s from group %s? [Y/n] "
+msgstr ""
+
+#: ../sync.c:527
+#, c-format
+msgid ":: %s: %s %s"
+msgstr ""
+
+#: ../sync.c:528
+msgid "requires"
+msgstr ""
+
+#: ../sync.c:528
+msgid "is required by"
+msgstr ""
+
+#: ../sync.c:593
+msgid ""
+"\n"
+"Remove: "
+msgstr ""
+
+#: ../sync.c:605
+msgid ""
+"\n"
+"Targets: "
+msgstr ""
+
+#: ../sync.c:608
+#, c-format
+msgid ""
+"\n"
+"Total Package Size: %.1f MB\n"
+msgstr ""
+
+#: ../sync.c:614
+msgid ""
+"\n"
+"Beginning download...\n"
+msgstr ""
+
+#: ../sync.c:618
+msgid "Proceed with download? [Y/n] "
+msgstr ""
+
+#: ../sync.c:626
+msgid ""
+"\n"
+"Beginning upgrade process...\n"
+msgstr ""
+
+#: ../sync.c:630
+msgid "Proceed with upgrade? [Y/n] "
+msgstr ""
+
+#: ../sync.c:676
+#, c-format
+msgid " %s-%s"
+msgstr ""
+
+#: ../sync.c:676
+msgid " is already in the cache\n"
+msgstr ""
+
+#: ../sync.c:684
+#, c-format
+msgid ""
+"\n"
+":: Retrieving packages from %s...\n"
+msgstr ""
+
+#. no cache directory.... try creating it
+#: ../sync.c:688
+#, c-format
+msgid "no %s cache exists. creating...\n"
+msgstr ""
+
+#: ../sync.c:689
+#, c-format
+msgid "warning: no %s cache exists. creating..."
+msgstr ""
+
+#. couldn't mkdir the cache directory, so fall back to /tmp and unlink
+#. * the package afterwards.
+#.
+#: ../sync.c:694
+msgid "couldn't create package cache, using /tmp instead"
+msgstr ""
+
+#: ../sync.c:695
+msgid "warning: couldn't create package cache, using /tmp instead"
+msgstr ""
+
+#: ../sync.c:705
+#, c-format
+msgid "failed to retrieve some files from %s\n"
+msgstr ""
+
+#. Check integrity of files
+#: ../sync.c:718
+msgid "checking package integrity... "
+msgstr ""
+
+#: ../sync.c:725
+#, c-format
+msgid "archive %s is corrupted\n"
+msgstr ""
+
+#: ../sync.c:727
+#, c-format
+msgid "could not get checksum for package %s (%s)\n"
+msgstr ""
+
+#: ../trans.c:51
+msgid "checking dependencies... "
+msgstr ""
+
+#: ../trans.c:54
+msgid "checking for file conflicts... "
+msgstr ""
+
+#: ../trans.c:57
+msgid "resolving dependencies... "
+msgstr ""
+
+#: ../trans.c:60
+msgid "looking for inter-conflicts... "
+msgstr ""
+
+#: ../trans.c:69
+#, c-format
+msgid "installing %s... "
+msgstr ""
+
+#: ../trans.c:73
+#, c-format
+msgid "installed %s (%s)"
+msgstr ""
+
+#: ../trans.c:79
+#, c-format
+msgid "removing %s... "
+msgstr ""
+
+#: ../trans.c:83
+#, c-format
+msgid "removed %s (%s)"
+msgstr ""
+
+#: ../trans.c:89
+#, c-format
+msgid "upgrading %s... "
+msgstr ""
+
+#: ../trans.c:93
+#, c-format
+msgid "upgraded %s (%s -> %s)"
+msgstr ""
+
+#: ../trans.c:108
+#, c-format
+msgid ":: %s requires %s, but it is in IgnorePkg. Install anyway? [Y/n] "
+msgstr ""
+
+#: ../trans.c:114
+#, c-format
+msgid ":: Replace %s with %s/%s? [Y/n] "
+msgstr ""
+
+#: ../trans.c:121
+#, c-format
+msgid ":: %s conflicts with %s. Remove %s? [Y/n] "
+msgstr ""
+
+#: ../trans.c:129
+#, c-format
+msgid ":: %s-%s: local version is newer. Upgrade anyway? [Y/n] "
+msgstr ""
+
+#: ../trans.c:139
+#, c-format
+msgid ":: %s-%s: local version is up to date. Upgrade anyway? [Y/n] "
+msgstr ""
+
+#: ../util.c:172
+#, c-format
+msgid "failed to allocated %d bytes\n"
+msgstr ""
+
+#: ../util.c:226
+#, c-format
+msgid "%s is not a valid regular expression.\n"
+msgstr ""
diff --git a/src/pacman/po/stamp-po b/src/pacman/po/stamp-po
new file mode 100644
index 00000000..9788f702
--- /dev/null
+++ b/src/pacman/po/stamp-po
@@ -0,0 +1 @@
+timestamp