Page MenuHomeFreeBSD

D2947.id7886.diff
No OneTemporary

D2947.id7886.diff

Index: share/mk/doc.commands.mk
===================================================================
--- share/mk/doc.commands.mk
+++ share/mk/doc.commands.mk
@@ -70,8 +70,13 @@
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
Index: share/mk/doc.docbook.mk
===================================================================
--- share/mk/doc.docbook.mk
+++ share/mk/doc.docbook.mk
@@ -270,6 +270,61 @@
${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/}
+# convert locale lang_REGION to ISO 639-1 two-char language code
+# the first two chars of codes match ISO-639, except zh_TW
+ISO_LANG?= ${LANGCODE:S/zh_TW/za_TW/C/_.*$//}
+NORMALIZE_CMD= ${XMLLINT} --nonet --noent --valid --xinclude
+# filter redundant namespace attributes
+FILTER_CMD= ${XMLLINT} --nsclean
+CLEANFILES+= ${DOC}.translate.xml ${ISO_LANG}.mo ${ISO_LANG}.mo
+
+# fix settings in PO file
+POSET_CMD= ${SED} -i '' -e 's,^\"Language: \\n,\"Language: ${ISO_LANG}\\n,' \
+ -e 's,^\"Content-Type: text/plain; charset=CHARSET\\n,\"Content-Type: text/plain; charset=UTF-8\\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_CMD} ${MASTERDOC_EN} > ${.TARGET}.tmp
+ @${FILTER_CMD} ${.TARGET}.tmp > ${.TARGET}
+ @${RM} ${.TARGET}.tmp
+
+po: ${ISO_LANG}.po
+.PHONY: po
+${ISO_LANG}.po: ${DOC}.translate.xml
+ @${ITSTOOL} -k -o ${ISO_LANG}.po.tmp ${DOC}.translate.xml
+ @( if [ -f "${ISO_LANG}.po" ]; then \
+ echo "${ISO_LANG}.po exists, merging" ; \
+ ${MSGMERGE} -o ${ISO_LANG}.po.new ${ISO_LANG}.po ${ISO_LANG}.po.tmp ;\
+ ${MV} ${ISO_LANG}.po.new ${ISO_LANG}.po ; \
+ ${RM} ${ISO_LANG}.po.tmp ; \
+ else \
+ ${ECHO} "New PO file created." ; \
+ ${ECHO} "Please check and correct the settings in the header of ${ISO_LANG}.po." ; \
+ ${MV} ${ISO_LANG}.po.tmp ${ISO_LANG}.po ; \
+ ${POSET_CMD} ${.TARGET} ; \
+ fi )
+
+${ISO_LANG}.mo: ${ISO_LANG}.po
+ @${MSGFMT} -o ${.TARGET} ${.ALLSRC}
+
+tran ${DOC}.xml: ${DOC}.translate.xml ${ISO_LANG}.mo
+ @if [ "${TRAN_DIR}" = "${EN_DIR}" ]; then \
+ ${ECHO} "build translation in a non-English dir" ; \
+ exit 1 ; \
+ fi
+ ${ITSTOOL} -l ${ISO_LANG} -m ${ISO_LANG}.mo -o ${DOC}.xml ${DOC}.translate.xml
+.endif
+
# XHTML -------------------------------------------------------------
index.html: ${DOC}.parsed.xml ${LOCAL_IMAGES_LIB} ${LOCAL_IMAGES_PNG} \

File Metadata

Mime Type
text/plain
Expires
Sat, Sep 19, 6:54 PM (17 h, 34 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
39243053
Default Alt Text
D2947.id7886.diff (2 KB)

Event Timeline