From 785422db30942c888a20fe56c9a55325cdafef5e Mon Sep 17 00:00:00 2001 From: Katsuhiko Nishimra Date: Thu, 19 Nov 2009 20:44:55 +0900 Subject: [PATCH] Defined make rule to generate translated man pages. --- Makefile.in | 21 ++++++++++++++++++++- ac/manpages_translations.m4 | 18 ++++++++++++++++++ ac/po4a.m4 | 24 ++++++++++++++++++++++++ configure.in | 2 ++ 4 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 ac/manpages_translations.m4 create mode 100644 ac/po4a.m4 diff --git a/Makefile.in b/Makefile.in index d10180017..356841857 100644 --- a/Makefile.in +++ b/Makefile.in @@ -85,6 +85,11 @@ MINGW_LIBS = @MINGW_LIBS@ MINGW = @MINGW@ OGG_LIBS = @OGG_LIBS@ OPTIMIZATION_CFLAGS = @OPTIMIZATION_CFLAGS@ +PO4A = @PO4A@ +PO4A_TRANSLATE = @PO4A_TRANSLATE@ +PO4A_FLAGS = @PO4A_FLAGS@ +PO4A_TRANSLATE_FLAGS = @PO4A_TRANSLATE_FLAGS@ +PO4A_WORKS = @PO4A_WORKS@ PROFILING_CFLAGS = @PROFILING_CFLAGS@ PROFILING_LIBS = @PROFILING_LIBS@ QT_CFLAGS = @QT_CFLAGS@ @@ -165,6 +170,12 @@ TRANSLATIONS = @TRANSLATIONS@ TRANSLATIONS_POS = @TRANSLATIONS_POS@ TRANSLATIONS_MOS = $(patsubst %.po,%.mo,$(TRANSLATIONS_POS)) +ifeq (yes,$(PO4A_WORKS)) +MANPAGES_TRANSLATIONS = @MANPAGES_TRANSLATIONS@ +MANPAGES_TRANSLATIONS_POS = @MANPAGES_TRANSLATIONS_POS@ +MANPAGES_TRANSLATED = @MANPAGES_TRANSLATED@ +endif + HTMLHELPBOOKS = mkvmerge-gui-book SYSTEM_INCLUDES = -I. -Ilib -Ilib/avilib-0.6.10 -Ilib/utf8-cpp/source -Isrc @@ -221,7 +232,7 @@ endif # Only rebuild the man pages if both xsltproc and the DocBook # stylesheet have been found by configure. ifeq ($(XSLTPROC_WORKS),yes) - MANPAGES_DEP = $(MANPAGES) + MANPAGES_DEP = $(MANPAGES) $(MANPAGES_TRANSLATED) endif all: $(MANPAGES_DEP) $(TAGSFILE) $(APPLICATIONS) $(TRANSLATIONS_MOS) $(HTMLHELPBOOKS) @@ -269,6 +280,11 @@ install-guide: manpages: $(MANPAGES) +translated-manpages: $(MANPAGES_TRANSLATED) + +update-manpage-po: + $(PO4A) $(PO4A_FLAGS) doc/man/po4a/po4a.cfg + # Some general rules ifeq (1,$(LIBMTXCOMMONDLL)) %.o: %.cpp @@ -310,6 +326,9 @@ endif @echo 'XSLTPROC ' $< $(Q)$(XSLTPROC) $(XSLTPROC_FLAGS) -o $@ $(DOCBOOK_MANPAGES_STYLESHEET) $< +# translated DocBook XML +@MANPAGES_TRANSLATED_XML_RULE@ + # Qt files %.h: %.ui @echo ' UIC ' $< diff --git a/ac/manpages_translations.m4 b/ac/manpages_translations.m4 new file mode 100644 index 000000000..c642ba452 --- /dev/null +++ b/ac/manpages_translations.m4 @@ -0,0 +1,18 @@ +AC_MSG_CHECKING(the manpage translation languages to install) +MANPAGES_TRANSLATIONS_POS="`echo $srcdir/doc/man/po4a/po/*.po`" +MANPAGES_TRANSLATIONS="`echo "$MANPAGES_TRANSLATIONS_POS" | \ + sed -e 's/\S*\/\(\w*\).po/\1/g'`" +AC_MSG_RESULT($MANPAGES_TRANSLATIONS) + +MANPAGES_TRANSLATED="`for lang in $MANPAGES_TRANSLATIONS; do \ + echo '$(subst doc/man, doc/man/'$lang', $(MANPAGES))'; done`" + +MANPAGES_TRANSLATED_XML_RULE="`for lang in $MANPAGES_TRANSLATIONS; do \ + echo "doc/man/$lang/%.xml: doc/man/%.xml doc/man/po4a/po/$lang.po" + echo ' $(PO4A_TRANSLATE) $(PO4A_TRANSLATE_FLAGS) -m $< -p '"doc/man/po4a/po/$lang.po "'-l $@';done`" + + +AC_SUBST(MANPAGES_TRANSLATIONS) +AC_SUBST(MANPAGES_TRANSLATIONS_POS) +AC_SUBST(MANPAGES_TRANSLATED) +AC_SUBST(MANPAGES_TRANSLATED_XML_RULE) diff --git a/ac/po4a.m4 b/ac/po4a.m4 new file mode 100644 index 000000000..40def0e0a --- /dev/null +++ b/ac/po4a.m4 @@ -0,0 +1,24 @@ +TRANSLATE_PERCENT=5 +PO4A_FLAGS="-M utf-8 -k $TRANSLATE_PERCENT" +PO4A_TRANSLATE_FLAGS="$PO4A_FLAGS -f docbook" +AC_PATH_PROG(PO4A, po4a) +AC_PATH_PROG(PO4A_TRANSLATE, po4a-translate) + +if test "$PO4A" != "" -a "$PO4A_TRANSLATE" != ""; then + AC_CACHE_CHECK([whether po4a-translate works], + [ac_cv_po4a_works], + [ + ac_cv_po4a_works=no + $PO4A_TRANSLATE $PO4A_TRANSLATE_FLAGS -m $srcdir/doc/man/mkvmerge.xml -p $srcdir/doc/man/po4a/po/ja.po -l /dev/null + if test "$?" = 0; then + ac_cv_po4a_works=yes + fi + ]) + PO4A_WORKS=$ac_cv_po4a_works +fi + +AC_SUBST(PO4A) +AC_SUBST(PO4A_TRANSLATE) +AC_SUBST(PO4A_FLAGS) +AC_SUBST(PO4A_TRANSLATE_FLAGS) +AC_SUBST(PO4A_WORKS) diff --git a/configure.in b/configure.in index c267b28e9..c8f103224 100644 --- a/configure.in +++ b/configure.in @@ -44,6 +44,8 @@ m4_include(ac/boost.m4) m4_include(ac/etags.m4) m4_include(ac/ax_docbook.m4) m4_include(ac/tiocgwinsz.m4) +m4_include(ac/po4a.m4) +m4_include(ac/manpages_translations.m4) AC_OUTPUT( Makefile