diff options
author | Jakub Hrozek <jhrozek@redhat.com> | 2010-10-20 17:23:11 +0200 |
---|---|---|
committer | Stephen Gallagher <sgallagh@redhat.com> | 2010-12-22 13:22:27 -0500 |
commit | 6f51c802311fd81a409a26763ed45b28a3234d0d (patch) | |
tree | a4c151f83668bae7c44cbb35413e6029190c1ee7 | |
parent | 2a2f642aae37e3f41cbbda162a74c2b946a4521f (diff) | |
download | sssd-6f51c802311fd81a409a26763ed45b28a3234d0d.tar.gz sssd-6f51c802311fd81a409a26763ed45b28a3234d0d.tar.bz2 sssd-6f51c802311fd81a409a26763ed45b28a3234d0d.zip |
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
-rw-r--r-- | Makefile.am | 47 | ||||
-rw-r--r-- | configure.ac | 4 | ||||
-rw-r--r-- | contrib/sssd.spec.in | 2 | ||||
-rw-r--r-- | src/man/Makefile.am | 160 | ||||
-rw-r--r-- | src/man/po/po4a.cfg | 22 | ||||
-rw-r--r-- | src/man/sss_groupdel.8.xml | 2 |
6 files changed, 198 insertions, 39 deletions
diff --git a/Makefile.am b/Makefile.am index d2cf3d07..174c7758 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 ?= . @@ -957,41 +957,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 # @@ -1083,7 +1057,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 1ebf2f71..6192c533 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 d1e505b5..0f9ff647 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 00000000..695696b7 --- /dev/null +++ b/src/man/Makefile.am @@ -0,0 +1,160 @@ +# 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 $(srcdir)/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 # +######################## + +PO4A=@PO4A@ +SED=@SED@ + +PACKAGE_DOC=sssd-docs + +POTFILE = po/$(PACKAGE_DOC).pot +PO4A_CONFIG = po/po4a.cfg + +# Extract the list of languages from the po4a config file. +LINGUAS_DIST = `$(SED) -ne 's/^.*\[po4a_langs\] \(.*\)$$/\1/p' $(srcdir)/$(PO4A_CONFIG)` + +# If the user has not defined it let's use the default. +LINGUAS ?= $(LINGUAS_DIST) + +PO4A_COMMON_OPTS = --option doctype=docbook \ + --package-name $(PACKAGE_DOC) \ + --variable builddir=$(CURDIR) \ + --package-version $(PACKAGE_VERSION) \ + --msgid-bugs-address sssd-devel@redhat.com \ + --copyright-holder "Red Hat" + +PO4A_BUILD_OPTS = $(PO4A_COMMON_OPTS) --no-backups + +EXTRA_DIST += \ + $(POTFILE)\ + $(PO4A_CONFIG) + +XML_DOC = $(wildcard $(srcdir)/*.xml) $(wildcard $(srcdir)/include/*.xml) + +if HAVE_PO4A + +# FIXME: Use a stamp file until po4a supports them internally. +man.stamp: $(XML_DOC) + cd $(srcdir) && \ + $(PO4A) $(PO4A_BUILD_OPTS) $(PO4A_CONFIG) + touch $@ + +update-po: + cd $(srcdir) && \ + $(PO4A) $(PO4A_BUILD_OPTS) --force $(PO4A_CONFIG) + +# Generate translated manual pages +translate: man.stamp + if [ -z $$recursion ]; then \ + for lang in $(LINGUAS); 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: man.stamp + if [ -f man.stamp ]; then \ + cp man.stamp $(distdir); \ + for lang in $(LINGUAS_DIST); do \ + cp $(srcdir)/po/$$lang.po $(distdir)/po; \ + $(mkdir_p) $(distdir)/$$lang; \ + cp -r $(builddir)/$$lang $(distdir)/; \ + done; \ + else \ + cp $(srcdir)/man.stamp $(distdir); \ + for lang in $(LINGUAS_DIST); do \ + cp $(srcdir)/po/$$lang.po $(distdir)/po; \ + $(mkdir_p) $(distdir)/$$lang; \ + cp -r $(srcdir)/$$lang $(distdir)/; \ + done; \ + fi + + +clean-local: clean-local-@USE_NLS@ +distclean-local: clean-local-@USE_NLS@ +mostlyclean-local: clean-local-@USE_NLS@ +maintainer-clean-local: clean-local-@USE_NLS@ + +clean-local-no: +clean-local-yes: + for lang in $(LINGUAS); do \ + if [ -d $$lang ]; then \ + rm -rf $$lang; \ + fi \ + done + rm -f $(man_MANS) + rm -f man.stamp + +install-data-local: install-data-local-@USE_NLS@ +install-data-local-no: +install-data-local-yes: + for lang in $(LINGUAS); 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-local-@USE_NLS@ +uninstall-local-no: +uninstall-local-yes: + for lang in $(LINGUAS); 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/po/po4a.cfg b/src/man/po/po4a.cfg new file mode 100644 index 00000000..4628642f --- /dev/null +++ b/src/man/po/po4a.cfg @@ -0,0 +1,22 @@ +[po4a_langs] cs +[po4a_paths] po/sssd-docs.pot $lang:po/$lang.po +[type:docbook] sss_groupmod.8.xml $lang:$(builddir)/$lang/sss_groupmod.8.xml +[type:docbook] sssd.conf.5.xml $lang:$(builddir)/$lang/sssd.conf.5.xml +[type:docbook] sssd-ldap.5.xml $lang:$(builddir)/$lang/sssd-ldap.5.xml +[type:docbook] pam_sss.8.xml $lang:$(builddir)/$lang/pam_sss.8.xml +[type:docbook] sssd_krb5_locator_plugin.8.xml $lang:$(builddir)/$lang/sssd_krb5_locator_plugin.8.xml +[type:docbook] sssd-simple.5.xml $lang:$(builddir)/$lang/sssd-simple.5.xml +[type:docbook] sssd-ipa.5.xml $lang:$(builddir)/$lang/sssd-ipa.5.xml +[type:docbook] sssd.8.xml $lang:$(builddir)/$lang/sssd.8.xml +[type:docbook] sss_obfuscate.8.xml $lang:$(builddir)/$lang/sss_obfuscate.8.xml +[type:docbook] sss_useradd.8.xml $lang:$(builddir)/$lang/sss_useradd.8.xml +[type:docbook] sssd-krb5.5.xml $lang:$(builddir)/$lang/sssd-krb5.5.xml +[type:docbook] sss_groupadd.8.xml $lang:$(builddir)/$lang/sss_groupadd.8.xml +[type:docbook] sss_userdel.8.xml $lang:$(builddir)/$lang/sss_userdel.8.xml +[type:docbook] sss_groupdel.8.xml $lang:$(builddir)/$lang/sss_groupdel.8.xml +[type:docbook] sss_groupshow.8.xml $lang:$(builddir)/$lang/sss_groupshow.8.xml +[type:docbook] sss_usermod.8.xml $lang:$(builddir)/$lang/sss_usermod.8.xml +[type:docbook] include/service_discovery.xml $lang:$(builddir)/$lang/include/service_discovery.xml opt:"-k 0" +[type:docbook] include/upstream.xml $lang:$(builddir)/$lang/include/upstream.xml opt:"-k 0" +[type:docbook] include/failover.xml $lang:$(builddir)/$lang/include/failover.xml opt:"-k 0" +[type:docbook] include/param_help.xml $lang:$(builddir)/$lang/include/param_help.xml opt:"-k 0" diff --git a/src/man/sss_groupdel.8.xml b/src/man/sss_groupdel.8.xml index 22f4fca0..978fc736 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'> |