質問: ### 実現したいこと=質問 Sphinx 初心者ながら、Sphinx ドキュメント(日本語)を構築しています。今はまず html ドキュメントへの変換作業を行っているところです。 sphinx-build の引数として -D language=ja とすることで、自分で記述した文章以外で、所定の箇所も日本語化されています。その中の代表的なものが admonition であり、"warning" は「警告」、"note" は「注釈」と表示されています。 この admonition をカスタマイズして、例えば "warning" は「注意」、"note" は「メモ」といったように変更したいと思っていますが、どこでどのように設定できるのかがわかりません。これを教えていただきたく思います。 例えば docbook-xml、docbook-xsl の場合、XMLファイル内にて lang="ja" を指定して、ja.xsl を読み込むようにすれば、ja.xsl 内にて admonition に対する定義が含まれていて、これをカスタマイズする方法があることを承知しています。こういったことが、Sphinx ドキュメント構築においてできないか、と思っているところです。 ご教示よろしくお願い致します。
回答: 強引に(とりあえず)自己解決しました・・・ もっとスマートな方法、ないでしょうか?・・・ sphinx/locale/*init*.py に以下を発見: ``` admonitionlabels = { 'attention': l_('Attention'), 'caution': l_('Caution'), 'danger': l_('Danger'), 'error': l_('Error'), 'hint': l_('Hint'), 'important': l_('Important'), 'note': l_('Note'), 'seealso': l_('See also'), 'tip': l_('Tip'), 'warning': l_('Warning'), } # type: Dict[unicode, unicode] ``` sphinx/locale/ja/LC_MESSAGES/sphinx.po に以下: ``` #: sphinx/locale/__init__.py:198 msgid "Attention" msgstr "注意" ... #: sphinx/locale/__init__.py:204 msgid "Note" msgstr "注釈" ``` これより強引に、自文書内の conf.py 最終に以下を定義: ``` from sphinx.locale import admonitionlabels admonitionlabels['note'] = u'メモ' admonitionlabels['warning'] = u'注意' ``` 以下の index.rst 文書を処理し、所望の結果を得ました: ``` テスト ====== .. note:: これは note です。 デフォルトでは「注釈」と表記されます。 .. warning:: これは warning です。 デフォルトでは「警告」と表記されます。 ``` もっと標準的な方法ってないのでしょうか・・・