2: 2019-02-15 (金) 08:19:37 yuji ソース
Attached file: python372jp.chm, Deleted an attach file: python372jp.chm at 2019-02-20 (水) 08:35:58
現: 2020-12-26 (土) 15:07:39 yuji ソース
Attached file: python372jp.chm
Line 18: Line 18:
ドキュメントを作成するのに必要なツールSphinx(Pythonで動作する)やTransifex(翻訳プロジェクト)などを,インストールする。 ドキュメントを作成するのに必要なツールSphinx(Pythonで動作する)やTransifex(翻訳プロジェクト)などを,インストールする。
 > pip install sphinx  > pip install sphinx
 + > pip install sphinx-intl
 > pip install blurb  > pip install blurb
 > pip install transifex-client  > pip install transifex-client
Line 24: Line 25:
Pythonのドキュメントを作成するのに,Pythonのソースコードにドキュメントのソースも含まれているので必要になる。 Pythonのドキュメントを作成するのに,Pythonのソースコードにドキュメントのソースも含まれているので必要になる。
-Pythonの[[公式サイト>https://www.python.org/]]から,Pythonのソースコードをダウンロードする。これは,日本語翻訳されたドキュメントのリソースを含んではいない。~+Pythonの[[公式サイト>https://www.python.org/]]から,Pythonのソースコード(ドキュメントも含んでいる)をダウンロードする。これには,日本語翻訳されたドキュメントのリソースを含んではいない。~
適当な作業ディレクトリで解凍する。 適当な作業ディレクトリで解凍する。
 > wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz  > wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz
Line 35: Line 36:
 > cd cpython-doc-intl  > cd cpython-doc-intl
 > git checkout intl-3.6  > git checkout intl-3.6
 +
 +** Sphinxの設定ファイルを修正 [#e1844232]
 +Sphinxを使用して日本語ドキュメントが出力されるように,''conf.py''ファイルの''General configuration''のどこかに,以下の追加・修正をする。
 + language = 'ja'
 + locale_dirs = ['locale/']
 + gettext_compact = False
 +  :
 +  :
 + today_fmt = '%m/%d/%Y'
** 翻訳済みリソースをTransifexからダウンロードする [#sb5a1327] ** 翻訳済みリソースをTransifexからダウンロードする [#sb5a1327]
-Pythonの[[公式サイト>https://www.python.org/]]からのソースコードには日本語化したドキュメントが入っていないので, Pythonドキュメントプロジェクト [[transifex>https://www.transifex.com/python-doc/]] で日本語の翻訳作業が行われているので,そこから日本語訳リソースをダウンロードする。+Pythonの[[公式サイト>https://www.python.org/]]からのソースコードには日本語化したドキュメントが入っていない。Pythonドキュメントプロジェクト [[transifex>https://www.transifex.com/python-doc/]] で日本語の翻訳作業が行われているので,そこから日本語訳リソースをダウンロードする。
-Pythonドキュメントプロジェクト [[transifex>https://www.transifex.com/python-doc/]] に参加して,翻訳作業を行うことが出来る。(翻訳作業は大変な労力が必要なので多くの人の協力が必要。参加したい。)+Pythonドキュメントプロジェクト [[transifex>https://www.transifex.com/python-doc/]] に参加して,翻訳作業を行うことが出来る。翻訳作業は大変な労力が必要なので多くの人の協力が必要。参加したいなぁ。
Pythonドキュメント日本語訳プロジェクトのリソースを使う場合は,[[transifex>https://www.transifex.com/]]のアカウントを作成する必要はない。 Pythonドキュメント日本語訳プロジェクトのリソースを使う場合は,[[transifex>https://www.transifex.com/]]のアカウントを作成する必要はない。
-まず,[[transifex>https://www.transifex.com/]] でアカウントを作成する。アカウントが作成できたらAPIキーを作成しておく。(翻訳者として登録しない場合は,アカウントを使用できるのは''15日間''。)~+まず,[[transifex>https://www.transifex.com/]] でアカウントを作成する。アカウントが作成できたらAPIキーを作成しておく。翻訳者として登録しない場合は,アカウントを使用できるのは''15日間''~
''~/.transifexrc''ファイルを以下の内容で作成する。 ''~/.transifexrc''ファイルを以下の内容で作成する。
 [https://www.transifex.com]  [https://www.transifex.com]
Line 55: Line 65:
Pythonドキュメントプロジェクト [[transifex>https://www.transifex.com/python-doc/]] での翻訳作業の成果を, [[Pythonドキュメント日本語訳プロジェクト>https://github.com/python-doc-ja/python-doc-ja]] に公開しているようだ。~ Pythonドキュメントプロジェクト [[transifex>https://www.transifex.com/python-doc/]] での翻訳作業の成果を, [[Pythonドキュメント日本語訳プロジェクト>https://github.com/python-doc-ja/python-doc-ja]] に公開しているようだ。~
-翻訳作業を行っている [[transifex>https://www.transifex.com/python-doc/]] から,直接バージョン3.7.2の.poファイルをダウンロード(作業中で未完成だが)する場合は,~ +翻訳するための設定ファイル.tx/configファイルを作成する。
- > mkdir locale+
 > cd locale  > cd locale
- > tx init + > sphinx-intl create-txconfig 
-のようにして,ソースファイル名を入力するところでctrl-Cで止める。 +  
- > tx config mapping-remote https://www.transifex.com/python-doc/python-newest/ +Pythonドキュメントソースからメッセージカタログ(.pot)ファイルを作成する。~ 
-として,txの設定ファイル''.tx/config''を作成する。~+ > cd .. 
 + > sphinx-build -b gettext . locale/pot
-そして,.tx/configファイルを, +翻訳するための設定ファイル.tx/configファイルをpotファイル情報で更新する。 
- awk '/file_filter/{sub("translations/python-newest.","",$3);print $1 " " $2 " " $3;print "source_file = pot/" $3;} !/file_filter/{print $0}' config | awk '/file_filter|source_file/{sub("/&lt;lang>","",$3);print $1 " " $2 " " $3;} !/file_filter|source_file/{print $0}' | awk '/file_filter|source_file/{sub("--","/",$3);print $1 " " $2 " " $3;} !/file_filter|source_file/{print $0}' | awk '/file_filter/{sub("= ","= <lang>/LC_MESSAGES/",$0);print $0;} !/file_filter/{print $0}' | awk '/source_file/{sub(/\.po/,".pot",$3);print $0;} !/source_file/{print $0}' | awk '{sub("type = PO","",$0);print $0;}' | awk '/host/{print $0;print "type = PO";} !/host/{print $0}' > config.1 + >; cd locale 
- awk '/file_filter|source_file/{sub("email_", "email.",$3);print $1 " " $2 " " $3;} !/file_filter|source_file/{print $0}' config.1 | awk '/file_filter|source_file/{sub("http_", "http.",$3);print $1 " " $2 " " $3;} !/file_filter|source_file/{print $0}' | awk '/file_filter|source_file/{sub("logging_", "logging.",$3);print $1 " " $2 " " $3;} !/file_filter|source_file/{print $0}' | awk '/file_filter|source_file/{sub("os_", "os.",$3);print $1 " " $2 " " $3;} !/file_filter|source_file/{print $0}' | awk '/file_filter|source_file/{sub("tkinter_", "tkinter.",$3);print $1 " " $2 " " $3;} !/file_filter|source_file/{print $0}' | awk '/file_filter|source_file/{sub("unittest_", "unittest.",$3);print $1 " " $2 " " $3;} !/file_filter|source_file/{print $0}' | awk '/file_filter|source_file/{sub("urllib_", "urllib.",$3);print $1 " " $2 " " $3;} !/file_filter|source_file/{print $0}' | awk '/file_filter|source_file/{sub("xml_", "xml.",$3);print $1 " " $2 " " $3;} !/file_filter|source_file/{print $0}' | awk '/file_filter|source_file/{sub("xmlrpc_", "xmlrpc.",$3);print $1 " " $2 " " $3;} !/file_filter|source_file/{print $0}' | awk '/file_filter|source_file/{sub("glossary_", "glossary",$3);print $1 " " $2 " " $3;} !/file_filter|source_file/{print $0}' | awk '/file_filter|source_file/{sub("dom_", "dom.",$3);print $1 " " $2 " " $3;} !/file_filter|source_file/{print $0}' | awk '/file_filter|source_file/{sub("etree_elementtree", "etree.elementtree",$3);print $1 " " $2 " " $3;} !/file_filter|source_file/{print $0}' | awk '/file_filter|source_file/{sub("sax_", "sax.",$3);print $1 " " $2 " " $3;} !/file_filter|source_file/{print $0}' >; config.2 +&nbsp;> sphinx-intl update-txconfig-resources --pot-dir pot --transifex-project-name="python-newest
- ;awk '/file_filter|source_file/{sub("2_0", "2.0",$3);print $1 " " $2 " " $3;} !/file_filter|source_file/{print $0}' config.2 | awk '/file_filter|source_file/{sub("2_1", "2.1",$3);print $1 " " $2 " " $3;} !/file_filter|source_file/{print $0}' | awk '/file_filter|source_file/{sub("2_2", "2.2",$3);print $1 " " $2 " " $3;} !/file_filter|source_file/{print $0}' | awk '/file_filter|source_file/{sub("2_3", "2.3",$3);print $1 " " $2 " " $3;} !/file_filter|source_file/{print $0}' | awk '/file_filter|source_file/{sub("2_4", "2.4",$3);print $1 " " $2 " " $3;} !/file_filter|source_file/{print $0}' | awk '/file_filter|source_file/{sub("2_5", "2.5",$3);print $1 " " $2 " " $3;} !/file_filter|source_file/{print $0}' | awk '/file_filter|source_file/{sub("2_6", "2.6",$3);print $1 " " $2 " " $3;} !/file_filter|source_file/{print $0}' | awk '/file_filter|source_file/{sub("2_7", "2.7",$3);print $1 " " $2 " " $3;} !/file_filter|source_file/{print $0}' | awk '/file_filter|source_file/{sub("3_0", "3.0",$3);print $1 " " $2 " " $3;} !/file_filter|source_file/{print $0}' | awk '/file_filter|source_file/{sub("3_1", "3.1",$3);print $1 " " $2 " " $3;} !/file_filter|source_file/{print $0}' | awk '/file_filter|source_file/{sub("3_2", "3.2",$3);print $1 " " $2 " " $3;} !/file_filter|source_file/{print $0}' | awk '/file_filter|source_file/{sub("3_3", "3.3",$3);print $1 " " $2 " " $3;} !/file_filter|source_file/{print $0}' | awk '/file_filter|source_file/{sub("3_4", "3.4",$3);print $1 " " $2 " " $3;} !/file_filter|source_file/{print $0}' | awk '/file_filter|source_file/{sub("3_5", "3.5",$3);print $1 " " $2 " " $3;} !/file_filter|source_file/{print $0}' | awk '/file_filter|source_file/{sub("3_6", "3.6",$3);print $1 " " $2 " " $3;} !/file_filter|source_file/{print $0}' | awk '/file_filter|source_file/{sub("3_7", "3.7",$3);print $1 " " $2 " " $3;} !/file_filter|source_file/{print $0}' > config.+ > awk '/file_filter/{sub("locales/","");print $0} !/file_filter/{print $0}' .tx/config > .tx/config.2 
- copy config.3 config + > cp .tx/config.2 .tx/config 
- del config.1 config.2 config.3 + > rm .tx/config.2
-とかして((もっと良い方法があると思うが,わからない。)), +
- [main] +
- host = https://www.transifex.com +
- type = PO +
- +
- [python-newest.about] +
- file_filter = <lang>/LC_MESSAGES/about.po +
- source_file = pot/about.pot +
- source_lang = en +
- +
- [python-newest.bugs] +
- file_filter = <lang>/LC_MESSAGES/bugs.po +
- source_file = pot/bugs.pot +
- source_lang = en +
- +
- [python-newest.c-api--abstract] +
- file_filter = <lang>/LC_MESSAGES/c-api/abstract.po +
- source_file = pot/c-api/abstract.pot +
- source_lang = en +
-  : +
-  : +
-のような構成に修正する。 +
- +
-修正が終わったら,+
 > tx pull -l ja  > tx pull -l ja
-とすると,現在翻訳作業中の.poファイルがダウンロードできる。+とすると,現在翻訳作業中の翻訳リソースの.poファイルがダウンロードできる。
*** Pythonドキュメント日本語訳プロジェクトのリソースを使う場合 [#n16ba263] *** Pythonドキュメント日本語訳プロジェクトのリソースを使う場合 [#n16ba263]
Line 108: Line 94:
* 日本語ドキュメント(HTML)を作成 [#w722d888] * 日本語ドキュメント(HTML)を作成 [#w722d888]
-Sphinxを使用してHTMLの日本語ドキュメントが出力されるように,''conf.py''ファイルのGeneral configurationを,以下の追加・修正をする。 +''conf.py''ファイルのOptions for HTML outputに,以下の修正をする。 
- language = 'ja' + html_last_updated_fmt = '%m/%d/%Y' 
- locale_dirs = ['locale/'] + 
- gettext_compact = False +翻訳した.poファイル(実際には.moファイル)を使用して,ドキュメントファイル(HTMLファイル)をビルドしてみる。~
-  : +
-  : +
- #today_fmt = '%B %d, %Y'                             <-- コメントアウト +
-翻訳した.poファイルを使用して,ドキュメントファイル(HTMLファイル)をビルドしてみる。~+
 > make clean html  > make clean html
Line 123: Line 105:
* Windowsのヘルプファイルchmを作成する [#s57c9c9b] * Windowsのヘルプファイルchmを作成する [#s57c9c9b]
-HTMLのドキュメントが作成出来ていれば,Windowsで使われるヘルプファイルである.chmファイルを作成できる。+HTMLのドキュメントが作成出来れば,Windowsで使われるヘルプファイルである.chmファイルを作成できる。
作成するには,Microsoftの [[HTML Help Workshop>https://www.microsoft.com/en-us/download/details.aspx?id=21138]] が必要になる。 作成するには,Microsoftの [[HTML Help Workshop>https://www.microsoft.com/en-us/download/details.aspx?id=21138]] が必要になる。
Line 132: Line 114:
Doc\build\htmlhelpに,HTMLファイルとpythonxxx.hhp,pythonxxx.hhc,pythonxxx.hhk,pythonxxx.stpが作成されている。 Doc\build\htmlhelpに,HTMLファイルとpythonxxx.hhp,pythonxxx.hhc,pythonxxx.hhk,pythonxxx.stpが作成されている。
-pythonxxx.hhpをダブルクリックしてHTML Help Workshopを起動しコンパイルすれば,Doc\build\htmlにpythonxxx.chmファイルが作成される。+''pythonxxx.hhp''をダブルクリックしてHTML Help Workshopを起動しコンパイルすれば,Doc\build\htmlにpythonxxx.chmファイルが作成される。
この時,locale以下に翻訳リソースがない場合,''build/htmlhelp''ディレクトリには英語のHTMLファイルがセットされてしまう。当然,HTML Help Workshopでコンパイルしても日本語ヘルプファイルにはならない。~ この時,locale以下に翻訳リソースがない場合,''build/htmlhelp''ディレクトリには英語のHTMLファイルがセットされてしまう。当然,HTML Help Workshopでコンパイルしても日本語ヘルプファイルにはならない。~
-もし日本語化されたHTMLファイルが''build\html''にある場合,''build\htmlhelp''出来たpythonxxx.hhp,pythonxxx.hhc,pythonxxx.hhk,pythonxxx.stpを,''build\html''にコピーして''build\html''のpythonxxx.hhpをダブルクリックしてHTML Help Workshopを起動しコンパイルすれば,ほぼ日本語化されたpythonxxx.chmファイルが作成することもできる。+もし日本語化されたHTMLファイルが''build\html''にある場合,''build\htmlhelp''出来たpythonxxx.hhp,pythonxxx.hhc,pythonxxx.hhk,pythonxxx.stpを,''build\html''にコピーして''build\html''のpythonxxx.hhpをダブルクリックしてHTML Help Workshopを起動しコンパイルすれば,ほぼ日本語化されたpythonxxx.chmファイルを作成することもできる。
* LaTeXを使ってPDFファイルを作成する [#dac558c6] * LaTeXを使ってPDFファイルを作成する [#dac558c6]
Line 142: Line 124:
この場合,LaTeX([[W32Tex>https://texwiki.texjp.org/?W32TeX]]を使ってる)やその他の周辺ツール,スタイルファイルなどが必要になる。 この場合,LaTeX([[W32Tex>https://texwiki.texjp.org/?W32TeX]]を使ってる)やその他の周辺ツール,スタイルファイルなどが必要になる。
-日本語用のクラスファイルは,pTeXに付属するjarticle, jreport, jbookや,pLaTeX2eのjsarticle, jsbookがある。~ +設定ファイル''conf.py''の''Options for LaTeX output''で,使用するエンジン''xelatex''をコメントアウトする。
-LaTeXでは,article, report, bookは,それぞれ論文,報告書,書籍用というように使い分けするようだ。 +
- +
-''conf.py''ファイルのOptions for LaTeX outputにある使用するエンジンを''xelatex''をコメントアウトする。+
 #latex_engine = 'xelatex'  #latex_engine = 'xelatex'
-Sphinxのクラスでhowto, manualは,howtoが短い文書,manualが長い文書用に利用されるようだ。+これは,デフォルトの''platex''を使うようにするため。 
 + 
 +Sphinxのクラスにhowtoとmanualがあって,howtoが短い文書,manualが長い文書に利用されているようだ。~ 
 +使用するドキュメントクラスは,デフォルト設定のhowtoに''jreport'',manualに''jsbook''が使われる。変更したい場合は, 
 + latex_docclass = {"howto": "jsreport", "manual": "jsbook"} 
 +のように設定する。
-''conf.py''ファイルの''latex_elements['preamble']''に,以下のように追加する。+Pythonのドキュメントには,İ (U+0130), ı (U+0131), ſ (U+017F), K (U+212A), Ü (U+00DC), ü (U+00FC) , Є (U+0404) の非ASCii文字が含まれている。~ 
 +これらをPDFで出力するために,''conf.py''のプリアンプル''latex_elements['preamble']''に,以下のように追加する。
 latex_elements['preamble'] = r'''  latex_elements['preamble'] = r'''
 \authoraddress{  \authoraddress{
Line 157: Line 142:
 \let\Verbatim=\OriginalVerbatim  \let\Verbatim=\OriginalVerbatim
 \let\endVerbatim=\endOriginalVerbatim  \let\endVerbatim=\endOriginalVerbatim
 + \usepackage[TS1,T1,T2A]{fontenc}
 + \usepackage{lmodern}
 \usepackage[utf8]{inputenc}  \usepackage[utf8]{inputenc}
- \DeclareUnicodeCharacter{017F}{\={s}} + \usepackage{babel} 
- \DeclareUnicodeCharacter{212A}{\={.}} + \DeclareUnicodeCharacter{212A}{\ensuremath{\mathrm{K}}} 
-   + \DeclareUnicodeCharacter{017F}{{\fontencoding{TS1}\selectfont s}} 
-  + \DeclareUnicodeCharacter{0404}{\fontencoding{T2A}\CYRIE
 + ''' 
 +//ただ,Є (U+0404) を表示する仕方がわからない。しょうがないんで,この文字はεでドキュメントのソースコード(locale\ja\LC_MESSAGES\whatsnew\3.7.po)を修正した。 
 + 
 +いくつかの.texファイル(library.tex,howto-logging.tex,using.tex)で,画像を読み込んでいるところでエラーが出るので,''conf.py''の''Options for LaTeX output''に,以下を追加する。 
 + latex_elements['passoptionstopackages'] = r''' 
 + \usepackage[dvipdfmx]{graphicx} 
 + '''
** texファイルを作成して,さらにpdfファイルを作成する [#ab6bf0be] ** texファイルを作成して,さらにpdfファイルを作成する [#ab6bf0be]
Line 168: Line 162:
この時,文書サイズをA4かletterか指定できる。~ この時,文書サイズをA4かletterか指定できる。~
うまくいくと,build/latexディレクトリに.texファイルが作成されている。 うまくいくと,build/latexディレクトリに.texファイルが作成されている。
- 
-いくつかの.texファイル(library.tex,howto-logging.tex,using.tex)で画像を読み込んでいるがエラーが出るので, 
- \usepackage[dvipdfmx]{graphicx} 
- 
- \usepackage{sphinx} 
-の前あたりに追加する。 
texファイルからPDFファイルに変換してみる。 texファイルからPDFファイルに変換してみる。


トップ   差分 バックアップ 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 1499, today: 2, yesterday: 0