-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 12/02/2010 03:25 PM, Stephen Gallagher wrote: > I take that back. I see it's supposed to be using $(srcdir)/po/LINGUAS, > however something is broken, because 'make distcheck' fails with:
Sumit helped me fix this bug (srcdir/builddir mismatch). New patch attached. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/ iEYEARECAAYFAk0Hal0ACgkQHsardTLnvCW7qwCeMp3QzbnIjJ5nIxL4DTS/ZeGR 1OsAnRJZhPfugWDF6oyj0mg0rdGgSZkL =+IP7 -----END PGP SIGNATURE-----
From d53ddb5ca9a812b933e8e9e010c9cc9b7825eaaa Mon Sep 17 00:00:00 2001 From: Jakub Hrozek <jhro...@redhat.com> Date: Wed, 20 Oct 2010 17:23:11 +0200 Subject: [PATCH] Make manual pages translatable Utilizes PO4A to extract translatable strings from Docbook XML sources and allows translators to submit ordinary .PO files. PO4A then generates translated Docbook documents that can be used to generate translated end user documentation. https://fedorahosted.org/sssd/ticket/297 --- Makefile.am | 47 +++---------- configure.ac | 4 +- contrib/sssd.spec.in | 2 + src/man/Makefile.am | 159 ++++++++++++++++++++++++++++++++++++++++++++ src/man/sss_groupdel.8.xml | 2 +- 5 files changed, 175 insertions(+), 39 deletions(-) create mode 100644 src/man/Makefile.am diff --git a/Makefile.am b/Makefile.am index a98b589..dce9f88 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,6 +1,6 @@ DISTCHECK_CONFIGURE_FLAGS = --with-ldb-lib-dir="$$dc_install_base"/lib/ldb -SUBDIRS = po +SUBDIRS = po src/man # Some old versions of automake don't define builddir builddir ?= . @@ -955,41 +955,15 @@ pysss_la_LDFLAGS = \ -module endif -############ -# MANPAGES # -############ - -#Special Rules: -export SGML_CATALOG_FILES -DOCBOOK_XSLT = http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl -XMLLINT_FLAGS = --catalogs --postvalid --nonet --xinclude --noout -XSLTPROC_FLAGS = --catalogs --xinclude --nonet - -man_MANS = \ - src/man/sss_useradd.8 src/man/sss_userdel.8 src/man/sss_usermod.8 \ - src/man/sss_groupadd.8 src/man/sss_groupdel.8 src/man/sss_groupmod.8 \ - src/man/sssd.8 src/man/sssd.conf.5 src/man/sssd-ldap.5 \ - src/man/sssd-krb5.5 src/man/sssd-ipa.5 src/man/sssd-simple.5 \ - src/man/sssd_krb5_locator_plugin.8 src/man/sss_groupshow.8 \ - src/man/pam_sss.8 src/man/sss_obfuscate.8 -EXTRA_DIST += $(man_MANS:%=%.xml) $(wildcard $(srcdir)/src/man/include/*.xml) - -SUFFIXES = .1.xml .1 .3.xml .3 .5.xml .5 .8.xml .8 -.1.xml.1: - $(XMLLINT) $(XMLLINT_FLAGS) $< - $(XSLTPROC) -o $@ $(XSLTPROC_FLAGS) $(DOCBOOK_XSLT) $< - -.3.xml.3: - $(XMLLINT) $(XMLLINT_FLAGS) $< - $(XSLTPROC) -o $@ $(XSLTPROC_FLAGS) $(DOCBOOK_XSLT) $< - -.5.xml.5: - $(XMLLINT) $(XMLLINT_FLAGS) $< - $(XSLTPROC) -o $@ $(XSLTPROC_FLAGS) $(DOCBOOK_XSLT) $< - -.8.xml.8: - $(XMLLINT) $(XMLLINT_FLAGS) $< - $(XSLTPROC) -o $@ $(XSLTPROC_FLAGS) $(DOCBOOK_XSLT) $< +################ +# TRANSLATIONS # +################ +update-po: + $(MAKE) -C src/man update-po + $(MAKE) -C po update-po + +translated-manpages: + $(MAKE) -C src/man translate ####################### # Installation Extras # @@ -1081,7 +1055,6 @@ if BUILD_PYTHON_BINDINGS cd $(srcdir)/src/config; $(PYTHON) setup.py build --build-base $(abs_builddir)/src/config clean --all endif rm -Rf doc - rm -f $(man_MANS) CLEANFILES = *.X */*.X */*/*.X diff --git a/configure.ac b/configure.ac index 1ebf2f7..6192c53 100644 --- a/configure.ac +++ b/configure.ac @@ -142,6 +142,8 @@ if test x$HAVE_MANPAGES != x; then CHECK_STYLESHEET([$SGML_CATALOG_FILES], [http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl], [Docbook XSL templates]) + AC_CHECK_PROG([PO4A],[po4a],[po4a],[no]) + AM_CONDITIONAL([HAVE_PO4A], [test "x$PO4A" != "xno"]) fi if test x$HAVE_PYTHON_BINDINGS != x; then @@ -184,6 +186,6 @@ AC_DEFINE_UNQUOTED([ABS_BUILD_DIR], ["$abs_build_dir"], [Absolute path to the bu AC_SUBST([abs_builddir], $abs_build_dir) AC_CONFIG_FILES([Makefile contrib/sssd.spec src/examples/rwtab src/doxy.config - src/sysv/systemd/sssd.service po/Makefile.in]) + src/sysv/systemd/sssd.service po/Makefile.in src/man/Makefile]) AC_OUTPUT diff --git a/contrib/sssd.spec.in b/contrib/sssd.spec.in index d1e505b..0f9ff64 100644 --- a/contrib/sssd.spec.in +++ b/contrib/sssd.spec.in @@ -73,6 +73,7 @@ BuildRequires: bind-utils BuildRequires: keyutils-libs-devel BuildRequires: libnl-devel BuildRequires: nscd +BuildRequires: po4a %description Provides a set of daemons to manage access to remote directories and @@ -118,6 +119,7 @@ use with ldap_default_authtok_type = obfuscated_password. --disable-rpath make %{?_smp_mflags} +make translated-manpages %check export CK_TIMEOUT_MULTIPLIER=10 diff --git a/src/man/Makefile.am b/src/man/Makefile.am new file mode 100644 index 0000000..7febd6c --- /dev/null +++ b/src/man/Makefile.am @@ -0,0 +1,159 @@ +# The following variable is dependent on placement of this file +top_builddir = ../.. + +############ +# MANPAGES # +############ + +#Special Rules: +export SGML_CATALOG_FILES +DOCBOOK_XSLT = http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl +XMLLINT_FLAGS = --catalogs --postvalid --nonet --xinclude --noout +XSLTPROC_FLAGS = --catalogs --xinclude --nonet + +man_MANS = \ + sss_useradd.8 sss_userdel.8 sss_usermod.8 \ + sss_groupadd.8 sss_groupdel.8 sss_groupmod.8 \ + sssd.8 sssd.conf.5 sssd-ldap.5 \ + sssd-krb5.5 sssd-ipa.5 sssd-simple.5 \ + sssd_krb5_locator_plugin.8 sss_groupshow.8 \ + pam_sss.8 sss_obfuscate.8 +EXTRA_DIST = $(man_MANS:%=%.xml) $(wildcard include/*.xml) + +SUFFIXES = .1.xml .1 .3.xml .3 .5.xml .5 .8.xml .8 +.1.xml.1: + $(XMLLINT) $(XMLLINT_FLAGS) $< + $(XSLTPROC) -o $@ $(XSLTPROC_FLAGS) $(DOCBOOK_XSLT) $< + +.3.xml.3: + $(XMLLINT) $(XMLLINT_FLAGS) $< + $(XSLTPROC) -o $@ $(XSLTPROC_FLAGS) $(DOCBOOK_XSLT) $< + +.5.xml.5: + $(XMLLINT) $(XMLLINT_FLAGS) $< + $(XSLTPROC) -o $@ $(XSLTPROC_FLAGS) $(DOCBOOK_XSLT) $< + +.8.xml.8: + $(XMLLINT) $(XMLLINT_FLAGS) $< + $(XSLTPROC) -o $@ $(XSLTPROC_FLAGS) $(DOCBOOK_XSLT) $< + +######################## +# MANPAGE TRANSLATIONS # +######################## + +po...@po4a@ +s...@sed@ + +PACKAGE_DOC=sssd-docs + +POTFILE=$(srcdir)/po/$(PACKAGE_DOC).pot +PO4A_CONFIG=$(srcdir)/po/po4a.cfg +LINGUAS=$(srcdir)/po/LINGUAS + +PO4A_COMMON_OPTS = --option doctype=docbook \ + --package-name $(PACKAGE_DOC) \ + --package-version $(PACKAGE_VERSION) \ + --msgid-bugs-address sssd-de...@redhat.com \ + --copyright-holder "Red Hat" + + +# The list of files to translate +XML_DOC=$(wildcard *.xml) $(wildcard include/*.xml) +LANGUAGES=$(shell $(SED) 's/\#.*//' $(LINGUAS)) + +EXTRA_DIST += \ + $(POTFILE) \ + $(LINGUAS) \ + $(LANGUAGES:%=po/%.po) + +if HAVE_PO4A + +prepare.stamp: $(LINGUAS) + for lang in $(LANGUAGES); do \ + $(mkdir_p) $$lang; \ + done + touch $@ + +$(PO4A_CONFIG): prepare.stamp $(XML_DOC) + rm -f $@ + echo "[po4a_langs] $(shell $(SED) 's/\#.*//' $(LINGUAS))" >> $@ + echo "[po4a_paths] $(POTFILE) \$$lang:po/\$$lang.po" >> $@ + for file in $(XML_DOC); do \ + echo "[type:docbook] $$file \$$lang:\$$lang/$$file" >> $@; \ + done + +# Extract translatable strings from the original Docbook sources +$(POTFILE): $(XML_DOC) $(PO4A_CONFIG) + $(PO4A) $(PO4A_COMMON_OPTS) --no-backups --no-translations $(PO4A_CONFIG) + +update-po: $(POTFILE) + +# Generate translated XML documents from the .PO files +translate-xml.stamp: $(PO4A_CONFIG) + $(PO4A) $(PO4A_COMMON_OPTS) $(PO4A_CONFIG) + touch $@ + +# Generate translated manual pages +translate: translate-xml.stamp + if [ -z $$recursion ]; then \ + for lang in $(LANGUAGES); do \ + if [ -d $$lang ]; then \ + sources=$$(ls $$lang/*.xml); \ + manpages=$$(echo $$sources | $(SED) 's/\.xml//'); \ + $(MAKE) recursion=1 man_MANS="$$manpages"; \ + fi \ + done \ + fi + +dist-hook: translate-xml.stamp + +clean-local: clean-loc...@use_nls@ +distclean-local: clean-loc...@use_nls@ +mostlyclean-local: clean-loc...@use_nls@ +maintainer-clean-local: clean-loc...@use_nls@ + +clean-local-no: +clean-local-yes: + if [ -f $(PO4A_CONFIG) ]; then \ + $(PO4A) --rm-backups --rm-translations $(PO4A_CONFIG); \ + rm -f $(PO4A_CONFIG); \ + fi + for lang in $(LANGUAGES); do \ + if [ -d $$lang ]; then \ + rm -rf $$lang; \ + fi \ + done + rm -f prepare.stamp + rm -f translate-xml.stamp + rm -f $(man_MANS) + +install-data-local: install-data-loc...@use_nls@ +install-data-local-no: +install-data-local-yes: + for lang in $(LANGUAGES); do \ + if [ -d $$lang ]; then \ + sources=$$(ls $$lang/*.xml); \ + manpages=$$(echo $$sources | $(SED) 's/\.xml//'); \ + $(MAKE) install-man \ + mandir="$(mandir)/$$lang" \ + man_MANS="$$manpages"; \ + fi \ + done + +uninstall-local: uninstall-loc...@use_nls@ +uninstall-local-no: +uninstall-local-yes: + for lang in $(LANGUAGES); do \ + if [ -d $$lang ]; then \ + sources=$$(ls $$lang/*.xml); \ + manpages=$$(echo $$sources | $(SED) 's/\.xml//'); \ + $(MAKE) uninstall-man \ + mandir="$(mandir)/$$lang" \ + man_MANS="$$manpages"; \ + fi \ + done + +else +translate: + @echo No po4a, skipping translations +endif diff --git a/src/man/sss_groupdel.8.xml b/src/man/sss_groupdel.8.xml index 22f4fca..978fc73 100644 --- a/src/man/sss_groupdel.8.xml +++ b/src/man/sss_groupdel.8.xml @@ -13,7 +13,7 @@ <refnamediv id='name'> <refname>sss_groupdel</refname> - <refpurpose>create a new group</refpurpose> + <refpurpose>delete a group</refpurpose> </refnamediv> <refsynopsisdiv id='synopsis'> -- 1.7.3.2
0001-Make-manual-pages-translatable.patch.sig
Description: PGP signature
_______________________________________________ sssd-devel mailing list sssd-devel@lists.fedorahosted.org https://fedorahosted.org/mailman/listinfo/sssd-devel