procps/po-man/Makefile.am
Craig Small 5ed8add969 nls: Update the man-po logic
Put the man-po pot file under version control like its po/*.pot sibling.

Makefile now auto-matically generates the list of man pages as they are
in a single directory. There were some missing!

pot file target is dependent on the untranslated man pages

When downloading from translation project, run po4a to sync the new
po files correctly.

Downloaded man po files from translation project and synched.

Thanks to @gorean for the info

References:
 procps-ng/procps#258

Signed-off-by: Craig Small <csmall@dropbear.xyz>
2022-11-10 21:52:19 +11:00

104 lines
2.9 KiB
Makefile

# *.po and *.pot are kept in VCS and generated by po4a-dist command
# translated/* are put in distribution but not found in VCS
#
# run:
# rm po-man/man.stamp
# make -C po-man man.stamp
# To update man page translations
src_MANS = $(wildcard $(top_srcdir)/man/*.[1-9])
translated_MANS = $(wildcard translated/*/*.[1-9])
translated_MAN_sections=$(subst .,,$(sort $(suffix $(translated_MANS))))
translated_langs = $(notdir $(wildcard translated/*))
EXTRA_DIST = po4a.cfg \
procps-man.pot \
$(translated_MANS)
# Extract the list of languages from the po4a config file.
LINGUAS_DIST = $(shell sed -ne 's/^.*\[po4a_langs\] \(.*\)$$/\1/p' $(srcdir)/po4a.cfg)
# If the user has not defined it let's use the default.
LINGUAS ?= $(LINGUAS_DIST)
PO4A_V = $(PO4A_V_@AM_V@)
PO4A_V_ = $(PO4A_V_@AM_DEFAULT_V@)
PO4A_V_0 = @echo " PO4A $@";
PO4A_OPTS = --srcdir $(srcdir) --destdir $(CURDIR) \
--package-name $(PACKAGE) --package-version $(VERSION) \
--msgid-bugs-address "Procps list <procps@freelists.org>"
all-local: all-local-@USE_PO4A@
all-local-no:
all-local-yes: man.stamp
# FIXME: Use a stamp file until po4a supports them internally.
man.stamp:
$(PO4A_V) $(PO4A) $(PO4A_OPTS) $(srcdir)/po4a.cfg
$(AM_V_at) touch $@
clean-local: clean-local-@USE_PO4A@
clean-local-no:
clean-local-yes:
rm -rf $(LINGUAS_DIST)
$(AM_V_at) rm -f man.stamp
.PHONY: update-po
procps-man.pot: $(src_MANS)
# parafiles = $(patsubst %,-m%,$(subst :, ,$(src_MANS)))
# parafiles = $(src_MANS:doc=Ente)
po4a-gettextize -M utf8 --option groff_code=verbatim --option generated --option untranslated="a.RE,\|" --option unknown_macros=untranslated -f man $(patsubst %,-m%,$(subst :, ,$(src_MANS))) -p $@
update-po:
$(PO4A_V) $(PO4A) $(PO4A_OPTS) --force $(srcdir)/po4a.cfg
install-data-local:
for lang in $(LINGUAS) ; do \
files=""; \
for trans in $(notdir $(src_MANS)); do \
if [ -f $(CURDIR)/$$lang/$$trans ]; then \
files="$$files $(CURDIR)/$$lang/$$trans"; \
elif [ -f $(srcdir)/$$lang/$$trans ]; then \
files="$$files $(srcdir)/$$lang/$$trans"; \
fi; \
done; \
$(MAKE) -C .. install-man \
mandir="$(mandir)/$$lang" \
man_MANS="" \
src_MANS="$$files"; \
done
uninstall-local:
for lang in $(LINGUAS); do \
files=""; \
for trans in $(notdir $(src_MANS)); do \
if [ -f $(CURDIR)/$$lang/$$trans ]; then \
files="$$files $(CURDIR)/$$lang/$$trans"; \
elif [ -f $(srcdir)/$$lang/$$trans ]; then \
files="$$files $(srcdir)/$$lang/$$trans"; \
fi; \
done; \
$(MAKE) -C .. uninstall-man \
mandir="$(mandir)/$$lang" \
man_MANS="" \
src_MANS="$$files"; \
done
dist-hook: man.stamp
cp $(srcdir)/man.stamp $(distdir)/
for lang in $(LINGUAS_DIST); do \
cp $(srcdir)/$$lang.po $(distdir); \
cp $(srcdir)/$$lang.add $(distdir); \
$(MKDIR_P) $(distdir)/$$lang; \
cp -r $(srcdir)/$$lang $(distdir)/; \
done