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("/<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 | + | > 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.3 | + | > 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ファイルに変換してみる。 |