Makefile.am 3.3 KB
Newer Older
1 2 3 4 5 6 7
DOMAIN = $(PACKAGE_NAME)
COPYRIGHT_HOLDER = The Libvirt authors
MSGID_BUGS_ADDRESS = https://libvirt.org/bugs.html

LANGS := \
	af am anp ar as ast bal be bg bn_IN \
	bn bo br brx bs ca cs cy da de_CH \
D
Daniel P. Berrangé 已提交
8
	de el en_GB eo es et eu fa fil fi \
D
Daniel P. Berrangé 已提交
9
	fr fur ga gl gu he hi hr hu ia \
10 11
	id ilo is it ja ka kk km kn ko \
	kw_GB kw@kkcor kw kw@uccor ky lt lv mai mk ml \
D
Daniel P. Berrangé 已提交
12
	mn mr ms my nb nds ne nl nn nso \
13 14 15 16 17
	or pa pl pt_BR pt ro ru si sk sl \
	sq sr@latin sr sv ta te tg th tr tw \
	uk ur vi wba yo zh_CN zh_HK zh_TW zu


18 19 20 21 22 23
POTFILES_IN = $(srcdir)/POTFILES.in
POTFILES: $(POTFILES_IN)
	$(AM_V_GEN) cat $(POTFILES_IN) | \
		$(SED) 's|[@]SRCDIR[@]|$(top_srcdir)|' | \
		$(SED) 's|[@]BUILDDIR[@]|$(top_builddir)|' > $@
POTFILE_DEPS = $(shell cat POTFILES)
24 25 26 27
POTFILE := $(DOMAIN).pot
POMINIFILES := $(LANGS:%=%.mini.po)
POFILES := $(LANGS:%=%.po)
GMOFILES := $(LANGS:%=%.gmo)
28

29
CLEANFILES = $(POTFILE) $(POFILES) $(GMOFILES) POTFILES
30

31
EXTRA_DIST = \
32
	$(POTFILES_IN) \
33
	$(POMINIFILES)
34 35 36 37 38 39 40 41 42 43 44 45 46 47

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)" \
	$(NULL)

48 49 50 51 52 53 54 55
POT_CREATION_DATE = $(shell \
	if test -n "$$SOURCE_DATE_EPOCH"; \
	then \
		date --date="@$$SOURCE_DATE_EPOCH" +"%F %R%z"; \
	else \
		date +'%F %R%z'; \
	fi)

56
SED_PO_FIXUP_ARGS = \
57 58 59 60 61
	-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')|" \
	-e "s|POT-Creation-Date:[^\]*|POT-Creation-Date: $(POT_CREATION_DATE)|" \
	$(NULL)
62 63 64 65 66

update-po: $(POFILES)

update-gmo: $(GMOFILES)

67 68 69 70 71 72
update-mini-po: $(POTFILE)
	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) | \
73
	  $(RUNUTF8) $(PYTHON) $(top_srcdir)/scripts/minimize-po.py > \
74 75 76
	    $(srcdir)/$$lang.mini.po ; \
	done

77
push-pot: $(POTFILE)
78 79 80 81 82
	zanata push \
		--project-config $(srcdir)/zanata.xml \
		--push-type=source \
		--transdir $(builddir) \
		--srcdir $(srcdir)
83 84

pull-po: $(POTFILE)
85 86 87 88 89
	zanata pull \
		--project-config $(srcdir)/zanata.xml \
		--create-skeletons \
		--transdir $(builddir) \
		--srcdir $(srcdir)
90
	$(MAKE) update-mini-po
91 92
	$(MAKE) update-gmo

93
$(POTFILE): POTFILES $(POTFILE_DEPS)
94
	$(XGETTEXT) -o $@-t $(XGETTEXT_ARGS) \
95
	  --files-from=$(abs_builddir)/POTFILES
96 97 98
	$(SED) $(SED_PO_FIXUP_ARGS) < $@-t > $@
	rm -f $@-t

99
%.po: %.mini.po $(POTFILE)
100 101
	$(MSGMERGE) --no-fuzzy-matching $< $(POTFILE) | \
	  $(SED) $(SED_PO_FIXUP_ARGS) > $@
102

103
%.gmo: %.po
104 105 106
	rm -f $@ $@-t
	$(MSGFMT) -c -o $@-t $<
	mv $@-t $@
107 108 109 110 111

.PRECIOUS: $(POTFILE) $(POFILES)

endif HAVE_GNU_GETTEXT_TOOLS

112 113
if ENABLE_NLS

114 115 116 117 118 119 120 121
# 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; \
122
	  install -m 0644 $$lang.gmo $$d/$(DOMAIN).mo; \
123 124 125 126 127 128 129
	done

uninstall-hook:
	for lang in $(LANGS); do \
	  d=$(DESTDIR)$(langinstdir)/$$lang/LC_MESSAGES; \
	  rm -f $$d/$(DOMAIN).mo; \
	done
130 131

endif ENABLE_NLS