Text Blame History Raw

xmldir = $(datadir)/xml/iso-codes nodist_xml_DATA = $(DOMAIN).xml

pofiles = $(wildcard $(srcdir)/*.po) mofiles = $(patsubst $(srcdir)/%.po,%.mo, $(pofiles)) noinst_DATA = $(mofiles) $(xml_DATA:.xml=.pot)

localedir = $(datadir)/locale

EXTRA_DIST = \ $(pofiles) \ $(DOMAIN).pot

MOSTLYCLEANFILES = \ $(mofiles) \ $(DOMAIN).xml

Generic target to create binary .mo files from .po files

%.mo: %.po $(MSGFMT) $(MSGFMT_FLAGS) -o $@ $<

Generic target to create .pot files from JSON data files

$(DOMAIN).pot: $(top_srcdir)/bin/pot_from_json.py $(top_srcdir)/data/$(DOMAIN).json $(top_srcdir)/bin/remove-potcdate.sin cp $@ backup.pot python3 $(top_srcdir)/bin/pot_from_json.py $(DOMAIN) $(top_srcdir)/data sed -f $(top_srcdir)/bin/remove-potcdate.sin < $@ > $(DOMAIN).1po sed -f $(top_srcdir)/bin/remove-potcdate.sin < backup.pot > $(DOMAIN).2po if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ rm -f $(DOMAIN).1po $(DOMAIN).2po $@ && \ mv backup.pot $@; \ else \ rm -f $(DOMAIN).1po $(DOMAIN).2po backup.pot; \ fi

Generic target to create deprecated .xml files from JSON data files

$(DOMAIN).xml: $(top_srcdir)/bin/xml_from_json.py $(top_srcdir)/data/$(DOMAIN).json python3 $(top_srcdir)/bin/xml_from_json.py $(DOMAIN) $(top_srcdir)/data $@

Used in the domain subdirectories for checking that

all .po files contain UTF-8 data

check-local: python3 $(top_srcdir)/bin/check_valid_utf8.py $(pofiles)

This target merges all po files with the current pot file,

removes obsolete msgids and substitutes the Project-Id-Version

header with the PROJECT only, removing the VERSION part.

This is done to keep the diff between releases small.

NOTE:

Removing obsolete msgids is not the recommended way to go.

However, we've decided that in the specific case of iso-codes

the benefit outweights the loss of information. Having only msgids

with one (sometimes two or three) words, the fuzzy matching performed

with obsolete msgids will not ease the translator's work, but

will lead to confusing entries.

However, if there is only a small change, we include the fuzzy

entry with the previous msgid to hopefully save some work.

.PHONY: update-po update-po: for pofile in $(pofiles); do \ $(MSGMERGE) --previous $$pofile $(DOMAIN).pot > tmpfile; \ $(MSGATTRIB) --no-obsolete tmpfile > $$pofile; \ sed -i -e 's/^\"Project-Id-Version: iso.*/\"Project-Id-Version: $(DOMAIN)\n\"/' $$pofile; \ done rm -f tmpfile if [ -f sr.po ]; then \ $(RECODE_SR_LATIN) < sr.po > sr@latin.po; \ sed -i -e 's/^\"Language: sr\n\"/\"Language: sr@latin\n\"/' sr@latin.po; \ fi if [ -f tt@iqtelif.po ]; then \ $(MSGFILTER) --keep-header sed -f $(top_srcdir)/bin/recode-tt-cyrillic.sed < tt@iqtelif.po > tt.po; \ sed -i -e 's/^\"Language: tt@iqtelif\n\"/\"Language: tt\n\"/' tt.po; \ fi

install-data-hook: $(mofiles) $(mkinstalldirs) $(DESTDIR)$(localedir) catalogs='$(mofiles)'; \ for cat in $$catalogs; do \ cat=basename $$cat; \ lang=echo $$cat | sed 's/\.mo$$//'; \ dir=$(DESTDIR)$(localedir)/$$lang/LC_MESSAGES; \ $(mkinstalldirs) $$dir; \ $(INSTALL_DATA) $$cat $$dir/$(DOMAIN).mo; \ if [ "$(DOMAIN)" = "iso_639-2" ]; then (cd $$dir && $(LN_S) $(DOMAIN).mo iso_639.mo); fi; \ if [ "$(DOMAIN)" = "iso_639-3" ]; then (cd $$dir && $(LN_S) $(DOMAIN).mo iso_639_3.mo); fi; \ if [ "$(DOMAIN)" = "iso_639-5" ]; then (cd $$dir && $(LN_S) $(DOMAIN).mo iso_639_5.mo); fi; \ if [ "$(DOMAIN)" = "iso_3166-1" ]; then (cd $$dir && $(LN_S) $(DOMAIN).mo iso_3166.mo); fi; \ if [ "$(DOMAIN)" = "iso_3166-2" ]; then (cd $$dir && $(LN_S) $(DOMAIN).mo iso_3166_2.mo); fi; \ done if [ "$(DOMAIN)" = "iso_639-2" ]; then (cd $(DESTDIR)$(xmldir) && $(LN_S) $(DOMAIN).xml iso_639.xml); fi if [ "$(DOMAIN)" = "iso_639-3" ]; then (cd $(DESTDIR)$(xmldir) && $(LN_S) $(DOMAIN).xml iso_639_3.xml); fi if [ "$(DOMAIN)" = "iso_639-5" ]; then (cd $(DESTDIR)$(xmldir) && $(LN_S) $(DOMAIN).xml iso_639_5.xml); fi if [ "$(DOMAIN)" = "iso_3166-1" ]; then (cd $(DESTDIR)$(xmldir) && $(LN_S) $(DOMAIN).xml iso_3166.xml); fi if [ "$(DOMAIN)" = "iso_3166-2" ]; then (cd $(DESTDIR)$(xmldir) && $(LN_S) $(DOMAIN).xml iso_3166_2.xml); fi

uninstall-hook: catalogs='$(mofiles)'; \ for cat in $$catalogs; do \ cat=basename $$cat; \ lang=echo $$cat | sed 's/\.mo$$//'; \ rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo; \ if [ "$(DOMAIN)" = "iso_639-2" ]; then rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/iso_639.mo; fi; \ if [ "$(DOMAIN)" = "iso_639-3" ]; then rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/iso_639_3.mo; fi; \ if [ "$(DOMAIN)" = "iso_639-5" ]; then rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/iso_639_5.mo; fi; \ if [ "$(DOMAIN)" = "iso_3166-1" ]; then rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/iso_3166.mo; fi; \ if [ "$(DOMAIN)" = "iso_3166-1" ]; then rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/iso_3166_2.mo; fi; \ done if [ "$(DOMAIN)" = "iso_639-2" ]; then rm -f $(DESTDIR)$(xmldir)/iso_639.xml; fi if [ "$(DOMAIN)" = "iso_639-3" ]; then rm -f $(DESTDIR)$(xmldir)/iso_639_3.xml; fi if [ "$(DOMAIN)" = "iso_639-5" ]; then rm -f $(DESTDIR)$(xmldir)/iso_639_5.xml; fi if [ "$(DOMAIN)" = "iso_3166-1" ]; then rm -f $(DESTDIR)$(xmldir)/iso_3166.xml; fi if [ "$(DOMAIN)" = "iso_3166-2" ]; then rm -f $(DESTDIR)$(xmldir)/iso_3166_2.xml; fi