diff --git a/Makefile.am b/Makefile.am
index 27ef8e34a..3e81a98b8 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -22,10 +22,7 @@ EXTRA_DIST = \
README.md \
NEWS \
autogen.sh \
- config.h \
- intltool-extract.in \
- intltool-merge.in \
- intltool-update.in
+ config.h
MAINTAINERCLEANFILES = \
$(srcdir)/INSTALL \
diff --git a/RELEASE b/RELEASE
index 20b88f78b..c2e2a2d4b 100644
--- a/RELEASE
+++ b/RELEASE
@@ -15,7 +15,6 @@ Update translations:
cd po
make fwupd.pot
-INTLTOOL_EXTRACT="/usr/bin/intltool-extract" XGETTEXT="/usr/bin/xgettext --no-location" srcdir=. /usr/bin/intltool-update --gettext-package fwupd --pot
tx push --source
tx pull --all --minimum-perc=5
git add *.po
diff --git a/autogen.sh b/autogen.sh
index 35971f28f..303253075 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -21,9 +21,9 @@ if test -z $AUTORECONF; then
exit 1
fi
-autopoint --force
-gtkdocize || exit 1
-ACLOCAL="${ACLOCAL-aclocal} $ACLOCAL_FLAGS" AUTOPOINT='intltoolize --automake --copy' autoreconf --force --install --verbose
+(cd $srcdir && autopoint --force) || exit 1
+(cd $srcdir && gtkdocize) || exit 1
+(cd $srcdir && autoreconf --force --install) || exit 1
cd "$olddir"
test -n "$NOCONFIGURE" || "$srcdir/configure" "$@"
diff --git a/configure.ac b/configure.ac
index 99c7a1ab7..4200d81ba 100644
--- a/configure.ac
+++ b/configure.ac
@@ -53,7 +53,6 @@ AC_PROG_CC_C99
AC_PROG_INSTALL
LT_INIT
AM_PROG_CC_C_O
-IT_PROG_INTLTOOL([0.35.0])
AC_PATH_PROG(XSLTPROC, xsltproc)
WARN_CFLAGS_EXTRA="
@@ -104,15 +103,11 @@ WARN_CFLAGS_EXTRA="
AX_APPEND_COMPILE_FLAGS([$WARN_CFLAGS_EXTRA], [WARN_CFLAGS])
AC_SUBST(WARN_CFLAGS)
-dnl ---------------------------------------------------------------------------
-dnl - gettext stuff
-dnl ---------------------------------------------------------------------------
-AM_GNU_GETTEXT_VERSION([0.17])
+# internationalization
AM_GNU_GETTEXT([external])
-
-GETTEXT_PACKAGE=AC_PACKAGE_NAME
-AC_SUBST(GETTEXT_PACKAGE)
-AC_DEFINE(GETTEXT_PACKAGE, "AC_PACKAGE_NAME", [foo])
+AM_GNU_GETTEXT_VERSION([0.19.8])
+AC_SUBST([GETTEXT_PACKAGE], [fwupd])
+AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Package name for gettext])
# check for PIE (position independent executable) support
if test x$with_pic != xno; then
diff --git a/contrib/fwupd.spec.in b/contrib/fwupd.spec.in
index 6b632787f..1651f8628 100644
--- a/contrib/fwupd.spec.in
+++ b/contrib/fwupd.spec.in
@@ -25,7 +25,6 @@ Source0: http://people.freedesktop.org/~hughsient/releases/%{name}-%{version}.
BuildRequires: docbook-utils
BuildRequires: gettext
BuildRequires: glib2-devel >= %{glib2_version}
-BuildRequires: intltool
BuildRequires: libappstream-glib-devel >= %{libappstream_version}
BuildRequires: libgudev1-devel
BuildRequires: libgusb-devel >= %{libgusb_version}
diff --git a/po/.gitignore b/po/.gitignore
index 7e78a29b4..1157bd2c0 100644
--- a/po/.gitignore
+++ b/po/.gitignore
@@ -1,6 +1,5 @@
*.gmo
*.header
-.intltool-merge-cache
Makefile.in.in
Makevars.template
POTFILES
diff --git a/po/LINGUAS b/po/LINGUAS
new file mode 100644
index 000000000..ab11d75a3
--- /dev/null
+++ b/po/LINGUAS
@@ -0,0 +1,20 @@
+cs
+de
+en_GB
+fr
+he
+hi
+hr
+hu
+it
+nl
+oc
+pl
+pt_BR
+ru
+sk
+sr
+sv
+tr
+uk
+zh_CN
diff --git a/po/Makevars b/po/Makevars
new file mode 100644
index 000000000..0dfd398e3
--- /dev/null
+++ b/po/Makevars
@@ -0,0 +1,78 @@
+# Makefile variables for PO directory in any package using GNU gettext.
+
+# Usually the message domain is the same as the package name.
+DOMAIN = $(PACKAGE)
+
+# These two variables depend on the location of this directory.
+subdir = po
+top_builddir = ..
+
+# These options get passed to xgettext.
+XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ --keyword=C_:1c,2 --keyword=NC_:1c,2 --keyword=g_dngettext:2,3
+
+# 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 = Richard Hughes
+
+# This tells whether or not to prepend "GNU " prefix to the package
+# name that gets inserted into the header of the $(DOMAIN).pot file.
+# Possible values are "yes", "no", or empty. If it is empty, try to
+# detect it automatically by scanning the files in $(top_srcdir) for
+# "GNU packagename" string.
+PACKAGE_GNU = no
+
+# 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 = richard@hughsie.com
+
+# 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 =
+
+# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt'
+# context. Possible values are "yes" and "no". Set this to yes if the
+# package uses functions taking also a message context, like pgettext(), or
+# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument.
+USE_MSGCTXT = no
+
+# These options get passed to msgmerge.
+# Useful options are in particular:
+# --previous to keep previous msgids of translated messages,
+# --quiet to reduce the verbosity.
+MSGMERGE_OPTIONS = --no-location --no-wrap
+
+# These options get passed to msginit.
+# If you want to disable line wrapping when writing PO files, add
+# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and
+# MSGINIT_OPTIONS.
+MSGINIT_OPTIONS = --no-wrap
+
+# This tells whether or not to regenerate a PO file when $(DOMAIN).pot
+# has changed. Possible values are "yes" and "no". Set this to no if
+# the POT file is checked in the repository and the version control
+# program ignores timestamps.
+PO_DEPENDS_ON_POT = no
+
+# This tells whether or not to forcibly update $(DOMAIN).pot and
+# regenerate PO files on "make dist". Possible values are "yes" and
+# "no". Set this to no if the POT file and PO files are maintained
+# externally.
+DIST_DEPENDS_ON_UPDATE_PO = no
diff --git a/policy/Makefile.am b/policy/Makefile.am
index 49200bc94..ad68ddc47 100644
--- a/policy/Makefile.am
+++ b/policy/Makefile.am
@@ -3,12 +3,10 @@ polkit_rulesdir = $(datadir)/polkit-1/rules.d
dist_polkit_rules_DATA = \
org.freedesktop.fwupd.rules
-@INTLTOOL_POLICY_RULE@
polkit_policydir = $(datadir)/polkit-1/actions
-polkit_policy_in_files = org.freedesktop.fwupd.policy.in
-polkit_policy_DATA = $(polkit_policy_in_files:.policy.in=.policy)
-#polkit_policy_DATA = \
-# org.freedesktop.fwupd.policy
+polkit_policy_DATA = org.freedesktop.fwupd.policy
+org.freedesktop.fwupd.policy: org.freedesktop.fwupd.policy.in
+ $(AM_V_GEN) $(MSGFMT) --xml --template $< -d $(top_srcdir)/po -o $@
EXTRA_DIST = org.freedesktop.fwupd.policy.in
CLEANFILES = \
diff --git a/policy/org.freedesktop.fwupd.policy.in b/policy/org.freedesktop.fwupd.policy.in
index b047e8141..09677279d 100644
--- a/policy/org.freedesktop.fwupd.policy.in
+++ b/policy/org.freedesktop.fwupd.policy.in
@@ -14,9 +14,9 @@
application-x-firmware
- <_description>Install signed system firmware
+ Install signed system firmware
- <_message>Authentication is required to update the firmware on this machine
+ Authentication is required to update the firmware on this machine
auth_admin
no
@@ -25,9 +25,9 @@
- <_description>Install unsigned system firmware
+ Install unsigned system firmware
- <_message>Authentication is required to update the firmware on this machine
+ Authentication is required to update the firmware on this machine
auth_admin
no
@@ -36,9 +36,9 @@
- <_description>Install old version of system firmware
+ Install old version of system firmware
- <_message>Authentication is required to downgrade the firmware on this machine
+ Authentication is required to downgrade the firmware on this machine
auth_admin
no
@@ -47,9 +47,9 @@
- <_description>Install signed device firmware
+ Install signed device firmware
- <_message>Authentication is required to update the firmware on a removable device
+ Authentication is required to update the firmware on a removable device
auth_admin
no
@@ -58,9 +58,9 @@
- <_description>Install unsigned device firmware
+ Install unsigned device firmware
- <_message>Authentication is required to update the firmware on a removable device
+ Authentication is required to update the firmware on a removable device
auth_admin
no
@@ -69,9 +69,9 @@
- <_description>Install unsigned device firmware
+ Install unsigned device firmware
- <_message>Authentication is required to downgrade the firmware on a removable device
+ Authentication is required to downgrade the firmware on a removable device
auth_admin
no
@@ -80,9 +80,9 @@
- <_description>Unlock the device to allow access
+ Unlock the device to allow access
- <_message>Authentication is required to unlock a device
+ Authentication is required to unlock a device
auth_admin
no
@@ -91,9 +91,9 @@
- <_description>Update the stored device verification information
+ Update the stored device verification information
- <_message>Authentication is required to update the stored checksums for the device
+ Authentication is required to update the stored checksums for the device
auth_admin
no