Package: xmlto Version: 0.0.18-5 Severity: wishlist Tags: patch Hello,
The apt-ftparchive man page is generated from an XML document. To translate this document, the French Tranlation Team translated the original XML, and then generated the man page from this translated XML document. This worked nice when the man page was generated by a Franch developer (with an fr_FR.ISO-8859-1 locale, I supppose). But the man page of the package is not that nice because it was generated by a buildd, with a C locale (I suppose): all accents are converted to character entities (e.g. é), which renders the man page hardly readable. (see #327456) The attached patch adds a --keep-encoding to xmlto, which disables the convertion of the XML document to the locale charmap before the xsl processing. Thanks in advance, -- Nekral
--- /usr/bin/xmlto.orig 2004-06-08 05:41:47.000000000 +0200 +++ /usr/bin/xmlto 2005-09-10 23:19:04.000000000 +0200 @@ -41,6 +41,9 @@ --searchpath colon-separated list of fallback directories --skip-validation do not attempt to validate the input before processing + --keep-encoding + do not use the encoding of the current locale, use the + one of the XML document Available FORMATs depend on the type of the XML file (which is determined automatically). @@ -124,28 +127,6 @@ </xsl:stylesheet> EOF -# Magic encoding, based on locale -if [ -x /usr/bin/locale ] -then - charmap=$(locale charmap 2>/dev/null) - - if [ -n "$charmap" ] - then - encodingmod=$(${MKTEMP} ${TMPDIR:-/tmp}/xmlto-xsl.XXXXXX) - CLEANFILES[$CLEANFILE_COUNT]="$encodingmod" - CLEANFILE_COUNT=$(($CLEANFILE_COUNT + 1)) - cat << EOF > "$encodingmod" -<?xml version='1.0'?> -<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" - version='1.0'> -<xsl:param name="chunker.output.encoding" select="'$charmap'"/> -</xsl:stylesheet> -EOF - XSL_MODS[$XSL_MOD_COUNT]="$encodingmod" - XSL_MOD_COUNT=$(($XSL_MOD_COUNT + 1)) - fi -fi - # Make verbosity level uniformly available to called scripts VERBOSE=0 export VERBOSE @@ -157,10 +138,11 @@ XSLTOPTS="$XSLTOPTS --xinclude" SKIP_VALIDATION=0 +KEEP_ENCODING=0 # Process any options ARGS=$(${GETOPT} \ - --longoptions=help,version,extensions,searchpath:,skip-validation \ + --longoptions=help,version,extensions,searchpath:,skip-validation,keep-encoding \ -n xmlto -- x:m:o:p:v "$@") [ $? != 0 ] && { usage; exit 1; } eval set -- "$ARGS" @@ -226,6 +208,10 @@ SKIP_VALIDATION=1 shift ;; + --keep-encoding) + KEEP_ENCODING=1 + shift + ;; --) shift break @@ -239,6 +225,27 @@ exit 1 fi +# Magic encoding, based on locale +if [ "$KEEP_ENCODING" = "0" ] && [ -x /usr/bin/locale ] +then + charmap=$(locale charmap 2>/dev/null) + + if [ -n "$charmap" ] + then + encodingmod=$(${MKTEMP} ${TMPDIR:-/tmp}/xmlto-xsl.XXXXXX) + CLEANFILES[$CLEANFILE_COUNT]="$encodingmod" + CLEANFILE_COUNT=$(($CLEANFILE_COUNT + 1)) + cat << EOF > "$encodingmod" +<?xml version='1.0'?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version='1.0'> +<xsl:param name="chunker.output.encoding" select="'$charmap'"/> +</xsl:stylesheet> +EOF + XSL_MODS[$XSL_MOD_COUNT]="$encodingmod" + XSL_MOD_COUNT=$(($XSL_MOD_COUNT + 1)) + fi +fi DEST_FORMAT="$1" case "$2" in /*) INPUT_FILE="$2" ;;