ci: Introduce $(CI_PREPARE_SCRIPT)
[libvirt/ericb.git] / po / Makefile.am
blobda117edbd582b1e4e48fe7158acc6e44e9c037b7
1 DOMAIN = $(PACKAGE_NAME)
2 COPYRIGHT_HOLDER = The Libvirt authors
3 MSGID_BUGS_ADDRESS = https://libvirt.org/bugs.html
5 LANGS := \
6         af am anp ar as ast bal be bg bn_IN \
7         bn bo br brx bs ca cs cy da de_CH \
8         de el en_GB eo es et eu fa fil fi \
9         fr fur ga gl gu he hi hr hu ia \
10         id ilo is it ja ka kk km kn ko \
11         kw_GB kw@kkcor kw kw@uccor ky lt lv mai mk ml \
12         mn mr ms my nb nds ne nl nn nso \
13         or pa pl pt_BR pt ro ru si sk sl \
14         sq sr@latin sr sv ta te tg th tr tw \
15         uk ur vi wba yo zh_CN zh_HK zh_TW zu
18 POTFILE_DEPS := $(shell $(SED) 's,^,$(top_srcdir)/,' $(srcdir)/POTFILES)
19 POTFILE := $(srcdir)/$(DOMAIN).pot
20 POFILES := $(LANGS:%=$(srcdir)/%.po)
21 GMOFILES := $(LANGS:%=$(srcdir)/%.gmo)
23 MAINTAINERCLEANFILES = $(POTFILE) $(POFILES) $(GMOFILES)
25 EXTRA_DIST = \
26         POTFILES \
27         $(POTFILE) \
28         $(POFILES) \
29         $(GMOFILES)
31 if HAVE_GNU_GETTEXT_TOOLS
33 XGETTEXT_ARGS = \
34         --default-domain=$(DOMAIN) \
35         --from-code=utf-8 \
36         --add-comments=TRANSLATORS: \
37         --keyword=_ --keyword=N_ \
38         --copyright-holder='$(COPYRIGHT_HOLDER)' \
39         --package-name="$(PACKAGE_NAME)" \
40         --package-version="$(PACKAGE_VERSION)" \
41         --msgid-bugs-address="$(MSGID_BUGS_ADDRESS)" \
42         --directory=$(top_srcdir) \
43         $(NULL)
45 SED_PO_FIXUP_ARGS = \
46        -e "s|text/plain; charset=CHARSET|text/plain; charset=UTF-8|g" \
47        -e "s|SOME DESCRIPTIVE TITLE|Libvirt package strings|g" \
48        -e "s|Copyright (C) YEAR|Copyright (C) $$(date +'%Y')|" \
49        $(NULL)
51 update-po: $(POFILES)
53 update-gmo: $(GMOFILES)
55 update-mini-po: $(POTFILE)
56         for lang in $(LANGS); do \
57           echo "Minimizing $$lang content" && \
58           $(MSGMERGE) --no-location --no-fuzzy-matching --sort-output \
59             $$lang.po $(POTFILE) | \
60           $(SED) $(SED_PO_FIXUP_ARGS) | \
61           $(PERL) $(top_srcdir)/build-aux/minimize-po.pl > \
62             $(srcdir)/$$lang.mini.po ; \
63         done
65 push-pot: $(POTFILE)
66         zanata push --push-type=source
68 pull-po: $(POTFILE)
69         zanata pull --create-skeletons
70         $(MAKE) update-mini-po
71         $(MAKE) update-gmo
73 $(POTFILE): POTFILES $(POTFILE_DEPS)
74         $(XGETTEXT) -o $@-t $(XGETTEXT_ARGS) \
75           --files-from=$(abs_srcdir)/POTFILES
76         $(SED) $(SED_PO_FIXUP_ARGS) < $@-t > $@
77         rm -f $@-t
79 $(srcdir)/%.po: $(srcdir)/%.mini.po $(POTFILE)
80         $(MSGMERGE) --no-fuzzy-matching $< $(POTFILE) | \
81           $(SED) $(SED_PO_FIXUP_ARGS) > $@
83 $(srcdir)/%.gmo: $(srcdir)/%.po
84         rm -f $@ $@-t
85         $(MSGFMT) -c -o $@-t $<
86         mv $@-t $@
88 .PRECIOUS: $(POTFILE) $(POFILES)
90 endif HAVE_GNU_GETTEXT_TOOLS
92 if ENABLE_NLS
94 # Cannot use 'localedir' since this conflicts with autoconf.
95 langinstdir = $(datadir)/locale
97 install-data-hook: $(GMOFILES)
98         mkdir -p $(DESTDIR)$(langinstdir)
99         for lang in $(LANGS); do \
100           d=$(DESTDIR)$(langinstdir)/$$lang/LC_MESSAGES; \
101           mkdir -p $$d; \
102           install -m 0644 $(srcdir)/$$lang.gmo $$d/$(DOMAIN).mo; \
103         done
105 uninstall-hook:
106         for lang in $(LANGS); do \
107           d=$(DESTDIR)$(langinstdir)/$$lang/LC_MESSAGES; \
108           rm -f $$d/$(DOMAIN).mo; \
109         done
111 endif ENABLE_NLS