[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: samba-doc-ja パッケージ



小林です。

From: TAKAHASHI Motonobu <monyo@xxxxxxxxx>
Subject: samba-doc-ja パッケージ
Date: Sun, 7 Oct 2007 01:24:22 +0900

> ただ、現在の Samba のドキュメントは XML 形式から docbook を用いて
> manpage 形式に変換しています。その段階で
> 
> http://wiki.samba.gr.jp/mediawiki/index.php/Samba_3.0_%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E7%94%9F%E6%88%90
> 
> の「現在の注意点」に記載したように問題点が発生している状態です。

これですね。

# 大した量でもないので、問題点を直接ここに書いてくださると、
# あとで読んだ人がフォローしやすい情報になると思うので……。 ;-)

    * デフォルト値、設定例、といった文言は、xslt/expand-smbconfdoc.xsl を直接編集しています。
    * Note や Warning といった文字列を日本語化する方法が確認できていません。
    * デフォルトでは、日本語文字列が、すべて実体参照(&#xxx形式)になってしまいますので、HTML はまだしも、manpage 形式では使い物になりません。仕方ないので、以下のような PHP スクリプトで変換掛けてます。 

> 若干場違いな気がしますが、xslt や docbook に詳しい方がいらっしゃったら、
> うまく日本語を処理できる方法を教えていただけると助かります。

Aptitude の日本語ドキュメント[1]生成に po4a と DocBook を使用していま
す。まだバイナリパッケージとしては提供されていませんが、aptitude ソー
スパッケージには日本語訳が入っているので、apt-get source aptitude でソー
スツリーを取得して doc/ 以下のビルド方法を読んでみてください。添付のよ
うなファイルで回避しているのが分かると思います。

なお、DocBook は互換性のない変更が次から次へと入るので「すべてのバージョ
ンできちんとビルドできること」は保証できず、ぼく自身 etch リリースの直
前にも manpage の出力について苦労した覚えがあります[2]。とりあえず上で
問題とされているような点については、docbook-xsl のソースコードを読んで
必要な設定をオーバーライドするようにしてクリアした、というだけで、恒久
的な解決方法ではないことに御注意ください。

[1] http://dolphin.c.u-tokyo.ac.jp/~nori1/aptitude-ja/
[2] http://dolphin.c.u-tokyo.ac.jp/~nori1/w/?cmd=view;name=Log200611 あたり?

-- 
|:  Noritada KOBAYASHI
|:  Dept. of General Systems Studies,
|:  Graduate School of Arts and Sciences, Univ. of Tokyo
|:  E-mail: nori1@xxxxxxxxxxxxxxxxxxxxxxx (preferable)
|:          nori@xxxxxxxxxxxxxxxxxxx
|:  Key fingerprint = AB26 9533 81DA 997B 3C06  4380 19BB ADA0 695C 9F53
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
                version="1.0">
<xsl:import href="../aptitude-man.xsl"/>

<!-- override settings in
     /usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl. -->
<xsl:param name="man.output.encoding" select="'euc-jp'"/>
<xsl:output method="text"
            encoding="euc-jp"
	    indent="no"/>

<!-- override templates in
     /usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl. -->
<xsl:template match="refnamediv">
  <xsl:text>.SH 名前&#10;</xsl:text>
  <xsl:for-each select="refname">
    <xsl:if test="position()>1">
      <xsl:text>, </xsl:text>
    </xsl:if>
    <xsl:value-of select="."/>
  </xsl:for-each>
  <xsl:text> \- </xsl:text>
  <xsl:value-of select="normalize-space (refpurpose)"/>
</xsl:template>

<xsl:template match="refsynopsisdiv">
  <xsl:text>&#10;.SH "書式"&#10;</xsl:text>
  <xsl:apply-templates/>
</xsl:template>

<xsl:template match="note">
  <xsl:text>&#10;.RS&#10;.Sh "注意</xsl:text>
  <xsl:if test="title">
    <xsl:text>: </xsl:text>
    <xsl:value-of select="title[1]"/>
  </xsl:if>
  <xsl:text>"&#10;</xsl:text>
  <xsl:apply-templates/>
  <xsl:text>&#10;.RE&#10;</xsl:text>
</xsl:template>

<xsl:template match="articleinfo|bookinfo|refentryinfo" mode="authorsect">
  <xsl:text>.SH 著者</xsl:text>
  <xsl:if test="count(.//author)>1">
    <xsl:text>S</xsl:text>
  </xsl:if>
  <xsl:text>&#10;</xsl:text>

  <xsl:for-each select=".//author">
    <xsl:if test="position() > 1">
      <xsl:text>, </xsl:text>
    </xsl:if>
    <xsl:variable name="author">
      <xsl:apply-templates select="."/>
    </xsl:variable>
    <xsl:value-of select="normalize-space($author)"/>
  </xsl:for-each>
  <xsl:text>.&#10;</xsl:text>
  <xsl:if test=".//editor">
    <xsl:text>.br&#10;Man page edited by </xsl:text>
    <xsl:apply-templates select=".//editor"/>
    <xsl:text>.&#10;</xsl:text>
  </xsl:if>
</xsl:template>

</xsl:stylesheet>
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
                version="1.0">
<xsl:import href="../aptitude-html.xsl"/>
<xsl:param name="chunker.output.encoding" select="'utf-8'"/>
<xsl:output method="text"
            encoding="utf-8"
	    indent="no"/>
<xsl:param name="menuchoice.menu.separator" select="' → '"/>
</xsl:stylesheet>