--- a/configure.ac
+++ b/configure.ac
@@ -80,7 +80,8 @@ dnl == i18n ==
 GETTEXT_PACKAGE=caribou
 AC_SUBST(GETTEXT_PACKAGE)
 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [The gettext package])
-AM_GLIB_GNU_GETTEXT
+AM_GNU_GETTEXT_VERSION(0.20.0)
+AM_GNU_GETTEXT([external])
 
 dnl == GTK modules ==
 AC_ARG_ENABLE(gtk3_module,
@@ -122,8 +123,6 @@ AM_CONDITIONAL([ENABLE_GTK_MODULES], [te
 dnl == GSettings ==
 GLIB_GSETTINGS
 
-dnl == intltool check ==
-IT_PROG_INTLTOOL([0.35.0])
 
 dnl == GObject introspection ==
 GOBJECT_INTROSPECTION_REQUIRE([0.10.7])
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -1,7 +1,6 @@
 SUBDIRS = layouts antler
 
 @GSETTINGS_RULES@
-@INTLTOOL_XML_NOMERGE_RULE@
 gsettings_schemas_in_files = \
 	org.gnome.caribou.gschema.xml.in \
 	org.gnome.antler.gschema.xml.in
@@ -27,7 +26,11 @@ org.gnome.Caribou.Antler.service: org.gn
 org.gnome.Caribou.Daemon.service: org.gnome.Caribou.Daemon.service.in
 	$(AM_V_GEN)sed -e "s|[@]libexecdir[@]|$(libexecdir)|" $< > $@
 
-@INTLTOOL_DESKTOP_RULE@
+%.xml: %.xml.in
+	$(AM_V_GEN)cp $< $@
+
+%.desktop: %.desktop.in
+	$(AM_V_GEN)$(MSGFMT) --desktop --template $< -d $(top_srcdir)/po -o $@
 
 EXTRA_DIST = $(autostart_in_in_files) $(servicefile_in_files)
 
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -1,4 +1,3 @@
-[encoding: UTF-8]
 caribou/settings/caribou_settings.py
 caribou/__init__.py
 caribou/antler/antler_settings.py
--- a/tools/make_schema.py
+++ b/tools/make_schema.py
@@ -71,8 +71,8 @@ class SchemasMaker:
                 printfunc = getattr(setting.gvariant, 'print')
             self._append_children_element_value_pairs(
                 doc, key, [('default', printfunc(False)),
-                           ('_summary', setting.short_desc),
-                           ('_description', setting.long_desc)])
+                           ('summary', setting.short_desc),
+                           ('description', setting.long_desc)])
 
         for s in setting:
             self._create_schema(s, doc, schemalist)
