pandocでepubを作る時, metadata.xmlに言語を指定できるが, content.opfに書き込まれるだけで, 個々のxhtmlには言語は指定されない. このままだとAdobe Digital Editionsでは文字化けしてしまう. 横浜工文社のbatスクリプトを参考にpandocが生成したepubを解凍, xhtmlを編集, 再びepubにまとめるスクリプトを作成した.
#!/bin/sh epub=$1 bname=`basename ${epub}` base=${bname%.*} epubo=${base}_jp.epub TMPDIR=/tmp/${base} if [ -d ${TMPDIR} ]; then rm -rf ${TMPDIR} fi if [ -f ${TMPDIR}/../${epubo} ]; then rm -f ${TMPDIR}/../${epubo} fi if [ -f ${epubo} ]; then rm -f ${epubo} fi mkdir ${TMPDIR} unzip ${epub} -d ${TMPDIR} cd ${TMPDIR} for f in *.xhtml; do g=${f}j sed -e 's|html xmlns="http://www.w3.org/1999/xhtml"|html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"|' ${f} > ${g} mv -f ${g} ${f} done zip -0 ../${epubo} mimetype zip -r ../${epubo} * -x mimetype mv ../${epubo} ${OLDPWD} rm -rf ${TMPDIR} rm -f ${TMPDIR}../${epubo}