Defined make rule to generate translated man pages.

This commit is contained in:
Katsuhiko Nishimra 2009-11-19 20:44:55 +09:00
parent b31edf4271
commit 785422db30
4 changed files with 64 additions and 1 deletions

View File

@ -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 ' $<

View File

@ -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)

24
ac/po4a.m4 Normal file
View File

@ -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)

View File

@ -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