svn commit: r47306 - head/share/mk

Warren Block <[email protected]>
Newsgroups gmane.os.freebsd.devel.cvs.doc
Message-ID <[email protected]>
Author: wblock
Date: Mon Aug 24 15:54:10 2015
New Revision: 47306
URL: https://svnweb.freebsd.org/changeset/doc/47306

Log:
  Add PO translation support.
  
  Reviewed by:	hrs (earlier version), blackend
  Approved by:	doceng (implicit)
  Differential Revision:	https://reviews.freebsd.org/D2947

Modified:
  head/share/mk/doc.commands.mk
  head/share/mk/doc.docbook.mk

Modified: head/share/mk/doc.commands.mk
==============================================================================
--- head/share/mk/doc.commands.mk	Mon Aug 24 13:45:32 2015	(r47305)
+++ head/share/mk/doc.commands.mk	Mon Aug 24 15:54:10 2015	(r47306)
@@ -70,8 +70,13 @@ HTML2PDBOPTS?=	-y -d0 -Idef ${HTML2PDBFL
 HTML2TXT?=	${PREFIX}/bin/links
 HTML2TXTOPTS?=	-dump ${HTML2TXTFLAGS}
 
+ITSTOOL?=	${PREFIX}/bin/itstool
+
 JING?=		${PREFIX}/bin/jing
 
+MSGFMT?=	${PREFIX}/bin/msgfmt
+MSGMERGE?=	${PREFIX}/bin/msgmerge
+
 XMLLINT?=	${PREFIX}/bin/xmllint
 XSLTPROC?=	${PREFIX}/bin/xsltproc
 

Modified: head/share/mk/doc.docbook.mk
==============================================================================
--- head/share/mk/doc.docbook.mk	Mon Aug 24 13:45:32 2015	(r47305)
+++ head/share/mk/doc.docbook.mk	Mon Aug 24 15:54:10 2015	(r47306)
@@ -270,6 +270,58 @@ ${DOC}.parsed.xml: ${SRCS} ${XML_INCLUDE
 	${SED} 's|@@URL_RELPREFIX@@|http://www.FreeBSD.org|g' < ${.TARGET} > ${DOC}.parsed.print.xml
 	${SED} -i '' -e 's|@@URL_RELPREFIX@@|../../../..|g' ${.TARGET}
 
+# translation -------------------------------------------------------
+
+# Master English document
+MASTERDOC_EN?=	${MASTERDOC:S/${LANGCODE}/en_US.ISO8859-1/}
+TRAN_DIR?=	${MASTERDOC:H}
+EN_DIR?=	${TRAN_DIR:S/${LANGCODE}/en_US.ISO8859-1/}
+PO_LANG?=	${LANGCODE:C/\..*$//}
+PO_CHARSET?=	${LANGCODE:tl:C/^.*\.//:S/^iso/iso-/:S/utf-8/UTF-8/}
+CLEANFILES+=	${DOC}.translate.xml ${PO_LANG}.mo ${PO_LANG}.mo
+
+# fix settings in PO file
+POSET_CMD=	${SED} -i '' -e 's,^\(\"Language-Team:.*\\n\"\),\1\${.newline}\"Language: ${PO_LANG}\\n\",' \
+			     -e 's,^\"Content-Type: text/plain; charset=.*\\n,\"Content-Type: text/plain; charset=${PO_CHARSET}\\n,'
+
+.if ${.TARGETS:Mpo} || ${.TARGETS:Mtran}
+${DOC}.translate.xml:
+	@if [ "${TRAN_DIR}" == "${EN_DIR}" ]; then \
+		${ECHO} "build PO file in a non-English dir" ; \
+		exit 1 ; \
+	 fi
+	# normalize the English original into a single file
+	@${XMLLINT} --nonet --noent --valid --xinclude ${MASTERDOC_EN} > ${.TARGET}.tmp
+	# remove redundant namespace attributes
+	@${XMLLINT} --nsclean ${.TARGET}.tmp > ${.TARGET}
+	@${RM} ${.TARGET}.tmp
+
+po: ${PO_LANG}.po
+.PHONY:	po
+${PO_LANG}.po:	${DOC}.translate.xml
+	@${ITSTOOL} -o ${PO_LANG}.po.tmp ${DOC}.translate.xml
+	@( if [ -f "${PO_LANG}.po" ]; then \
+		echo "${PO_LANG}.po exists, merging" ; \
+		${MSGMERGE} -o ${PO_LANG}.po.new ${PO_LANG}.po ${PO_LANG}.po.tmp ;\
+		${MV} ${PO_LANG}.po.new ${PO_LANG}.po ; \
+		${RM} ${PO_LANG}.po.tmp ; \
+	  else \
+	  	${ECHO} "${PO_LANG}.po created, please check and correct the settings in the header" ; \
+		${MV} ${PO_LANG}.po.tmp ${PO_LANG}.po ; \
+		${POSET_CMD} ${.TARGET} ; \
+	  fi )
+
+${PO_LANG}.mo:	${PO_LANG}.po
+	@${MSGFMT} -o ${.TARGET} ${.ALLSRC}
+
+tran ${DOC}.xml:	${DOC}.translate.xml ${PO_LANG}.mo
+	@if [ "${TRAN_DIR}" = "${EN_DIR}" ]; then \
+		${ECHO} "build translation in a non-English dir" ; \
+		exit 1 ; \
+	 fi
+	${ITSTOOL} -l ${PO_LANG} -m ${PO_LANG}.mo -o ${DOC}.xml ${DOC}.translate.xml
+.endif
+
 # XHTML -------------------------------------------------------------
 
 index.html: ${DOC}.parsed.xml ${LOCAL_IMAGES_LIB} ${LOCAL_IMAGES_PNG} \
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-doc-all
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.