[libvirt PATCH 315/351] meson: po: introduce libvirt translation

Pavel Hrdina phrdina at redhat.com
Thu Jul 16 09:59:11 UTC 2020


Signed-off-by: Pavel Hrdina <phrdina at redhat.com>
---
 Makefile.am    |  3 +-
 configure.ac   |  3 +-
 meson.build    |  2 ++
 po/Makefile.am | 87 --------------------------------------------------
 po/meson.build | 35 ++++++++++++++++++++
 5 files changed, 39 insertions(+), 91 deletions(-)
 delete mode 100644 po/Makefile.am
 create mode 100644 po/meson.build

diff --git a/Makefile.am b/Makefile.am
index 4b3abc82728..fca0c1f5c29 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -20,8 +20,7 @@
 # so force it explicitly
 DISTCHECK_CONFIGURE_FLAGS = --enable-werror
 
-SUBDIRS = . docs \
-  po
+SUBDIRS = . docs
 
 XZ_OPT ?= -v -T0
 export XZ_OPT
diff --git a/configure.ac b/configure.ac
index 4f7ad909468..91ba0c2af4e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -113,6 +113,5 @@ AC_CONFIG_FILES([\
         libvirt-qemu.pc \
         libvirt-lxc.pc \
         libvirt-admin.pc \
-        libvirt.spec mingw-libvirt.spec \
-        po/Makefile])
+        libvirt.spec mingw-libvirt.spec])
 AC_OUTPUT
diff --git a/meson.build b/meson.build
index caee54a5818..8b434929825 100644
--- a/meson.build
+++ b/meson.build
@@ -2209,6 +2209,8 @@ subdir('tests')
 
 subdir('examples')
 
+subdir('po')
+
 
 # generate meson-config.h file
 configure_file(output: 'meson-config.h', configuration: conf)
diff --git a/po/Makefile.am b/po/Makefile.am
deleted file mode 100644
index ff73ead6f72..00000000000
--- a/po/Makefile.am
+++ /dev/null
@@ -1,87 +0,0 @@
-DOMAIN = $(PACKAGE_NAME)
-COPYRIGHT_HOLDER = The Libvirt authors
-MSGID_BUGS_ADDRESS = https://libvirt.org/bugs.html
-
-LANGS := $(shell cat $(srcdir)/LINGUAS)
-
-POTFILES_IN = $(srcdir)/POTFILES.in
-POTFILES: $(POTFILES_IN)
-	$(AM_V_GEN) cat $(POTFILES_IN) | \
-		$(SED) 's|[@]SRCDIR[@]||' | \
-		$(SED) 's|[@]BUILDDIR[@]||' > $@
-POTFILE_DEPS = $(shell cat POTFILES)
-POTFILE := $(DOMAIN).pot
-POFILES := $(LANGS:%=%.po)
-GMOFILES := $(LANGS:%=%.gmo)
-
-if HAVE_GNU_GETTEXT_TOOLS
-
-XGETTEXT_ARGS = \
-	--default-domain=$(DOMAIN) \
-	--from-code=utf-8 \
-	--add-comments=TRANSLATORS: \
-        --keyword=_ --keyword=N_ \
-	--copyright-holder='$(COPYRIGHT_HOLDER)' \
-	--package-name="$(PACKAGE_NAME)" \
-	--package-version="$(PACKAGE_VERSION)" \
-	--msgid-bugs-address="$(MSGID_BUGS_ADDRESS)" \
-	--directory="$(top_srcdir)" \
-	--directory="$(top_builddir)" \
-	--sort-output \
-	$(NULL)
-
-SED_PO_FIXUP_ARGS = \
-	-e "s|text/plain; charset=CHARSET|text/plain; charset=UTF-8|g" \
-	-e "s|SOME DESCRIPTIVE TITLE|Libvirt package strings|g" \
-	-e "s|Copyright (C) YEAR|Copyright (C) $$(date +'%Y')|" \
-	$(NULL)
-
-update-gmo: $(GMOFILES)
-
-# The results of this target should not be committed to Git. The Weblate
-# service is responsible for updating .po files when the .pot is changed.
-update-po: $(POTFILE)
-	cd $(srcdir) && \
-	for lang in $(LANGS); do \
-	  echo "Minimizing $$lang content" && \
-	  $(MSGMERGE) --no-location --no-fuzzy-matching --sort-output \
-	    $$lang.po $(POTFILE) | \
-	  $(SED) $(SED_PO_FIXUP_ARGS) > $$lang.po-t && \
-	  mv $$lang.po-t $$lang.po ; \
-	done
-
-$(POTFILE): POTFILES
-	$(XGETTEXT) -o $@-t $(XGETTEXT_ARGS) \
-	  --files-from=$(abs_builddir)/POTFILES
-	$(SED) $(SED_PO_FIXUP_ARGS) < $@-t > $(srcdir)/$@
-	rm -f $@-t
-
-%.gmo: %.po
-	rm -f $@ $@-t
-	$(MSGFMT) -c -o $@-t $<
-	mv $@-t $@
-
-.PHONY: $(POTFILE)
-
-endif HAVE_GNU_GETTEXT_TOOLS
-
-if ENABLE_NLS
-
-# Cannot use 'localedir' since this conflicts with autoconf.
-langinstdir = $(datadir)/locale
-
-install-data-hook: $(GMOFILES)
-	mkdir -p $(DESTDIR)$(langinstdir)
-	for lang in $(LANGS); do \
-	  d=$(DESTDIR)$(langinstdir)/$$lang/LC_MESSAGES; \
-	  mkdir -p $$d; \
-	  install -m 0644 $$lang.gmo $$d/$(DOMAIN).mo; \
-	done
-
-uninstall-hook:
-	for lang in $(LANGS); do \
-	  d=$(DESTDIR)$(langinstdir)/$$lang/LC_MESSAGES; \
-	  rm -f $$d/$(DOMAIN).mo; \
-	done
-
-endif ENABLE_NLS
diff --git a/po/meson.build b/po/meson.build
new file mode 100644
index 00000000000..f9677408ec9
--- /dev/null
+++ b/po/meson.build
@@ -0,0 +1,35 @@
+i18n = import('i18n')
+
+potfiles_conf = configuration_data()
+potfiles_conf.set('SRCDIR', '')
+potfiles_conf.set('BUILDDIR', '')
+
+potfiles = configure_file(
+  input: 'POTFILES.in',
+  output: 'POTFILES',
+  configuration: potfiles_conf,
+)
+
+i18n.gettext(
+  meson.project_name(),
+  args: [
+    '--add-comments=TRANSLATORS:',
+    '--directory=@0@'.format(meson.source_root()),
+    '--directory=@0@'.format(meson.build_root()),
+    '--files-from=@0@'.format(meson.current_build_dir() / 'POTFILES'),
+    '--msgid-bugs-address=https://libvirt.org/bugs.html',
+    '--package-version=@0@'.format(meson.project_version()),
+    '--sort-output',
+  ],
+  preset: 'glib',
+)
+
+potfiles_dep = [
+  access_gen_sources,
+  admin_client_generated,
+  admin_driver_generated,
+  remote_driver_generated,
+  remote_daemon_generated,
+]
+
+alias_target('libvirt-pot-dep', potfiles_dep)
-- 
2.26.2




More information about the libvir-list mailing list