1: 2019-02-15 (金) 08:16:51 yuji | 現: 2020-12-26 (土) 15:07:39 yuji Attached file: python372jp.chm |
||
---|---|---|---|
Line 1: | Line 1: | ||
* Pythonのドキュメントの日本語化とヘルプファイル [#j419f555] | * Pythonのドキュメントの日本語化とヘルプファイル [#j419f555] | ||
- | Pythonを使っている人は''Pythonの公式ドキュメント''がマニュアルとなります。~ | + | 私はPython初心者で,''Pythonの公式ドキュメント''をマニュアルとしてよく見る。~ |
公式オリジナルの英語版が https://docs.python.org/3/ で公開されていて,その日本語に翻訳されたものが https://docs.python.jp/3/ で公開されている。~ | 公式オリジナルの英語版が https://docs.python.org/3/ で公開されていて,その日本語に翻訳されたものが https://docs.python.jp/3/ で公開されている。~ | ||
- | Pythonのドキュメントには,WindowsのHELPファイルがリリースされているが,日本語翻訳したものは公式にはリリースされていない。 | + | PythonをインストールするとWindowsのヘルプファイルも提供されるが,日本語翻訳したものは公式にはリリースされていないみたい。 |
- | 一応,[[Python Japanese Environment>https://ja.osdn.net/projects/pythonjp/]]で,Python 2.7の日本語Windows HELPファイルがあるが,なぜかエラーが表示されて正常に表示されない。~ | + | 一応,[[Python Japanese Environment>https://ja.osdn.net/projects/pythonjp/]]で,Python 2.7の日本語Windowsヘルプファイルがあるのだが,なぜかエラーが毎回表示されてしまう。また,最新のバージョンのものは残念ながら見つからない。 |
- | また,最新のバージョンのものは残念ながら無い。 | + | |
- | そこで,日本語翻訳されたWindowsのHELPファイルを作成してみることにした。 | + | そこで,日本語翻訳されたWindowsのヘルプファイルを作成してみることにした。 |
[[Pythonドキュメント日本語訳プロジェクト>https://github.com/python-doc-ja/python-doc-ja]]の活動のおかげで,日本語訳のリソースは手に入れることが出来る。~ | [[Pythonドキュメント日本語訳プロジェクト>https://github.com/python-doc-ja/python-doc-ja]]の活動のおかげで,日本語訳のリソースは手に入れることが出来る。~ | ||
- | これを使用して,日本語のWindows HELPファイルを作成してみる。 | + | これを使用して,日本語のPythonのヘルプファイルを作成してみる。 |
- | * ソースコードからHTMLドキュメントを作成する [#vb732b95] | + | * ソースコードと日本語リソースを用意する [#vb732b95] |
- | まず,Pythonのドキュメントから日本語のドキュメント(HTML)を作成する。 | + | まず,Pythonのドキュメントから日本語のドキュメント(HTML)を作成してみる。 |
** ビルドに必要なツールを用意する [#zeba009d] | ** ビルドに必要なツールを用意する [#zeba009d] | ||
ドキュメントを作成するのに必要なツール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 | ||
** Pythonのソースコードを準備 [#p0d51217] | ** Pythonのソースコードを準備 [#p0d51217] | ||
- | 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 | ||
> tar xvfz Python-3.7.2.tgz | > tar xvfz Python-3.7.2.tgz | ||
> cd Python-3.7.2 | > cd Python-3.7.2 | ||
- | 別の方法として,[[Pythonドキュメント日本語訳プロジェクト>https://github.com/python-doc-ja/python-doc-ja]]から,日本語翻訳ドキュメントが含まれたPythonのソースコードをダウンロード出来る。~ | + | 別の方法として,[[Pythonドキュメント日本語訳プロジェクト>https://github.com/python-doc-ja/cpython-doc-intl]]から,Sphinxの設定が含まれたPythonのソースコードをダウンロード出来る。~ |
- | ただ,翻訳作業が終了後リポジトリが更新されるので,最新バージョンが用意されるまでは時間がかかる。02/08/2019時点での最新版は3.6.5だった。 | + | ただ,翻訳作業が終了後にリポジトリが更新されるので,最新バージョンが用意されるまでは時間がかかる。いまのところ用意されている最新版は3.6.5だった。 |
> git clone https://github.com/python-doc-ja/cpython-doc-intl | > git clone https://github.com/python-doc-ja/cpython-doc-intl | ||
> cd cpython-doc-intl | > cd cpython-doc-intl | ||
> git checkout intl-3.6 | > git checkout intl-3.6 | ||
- | この場合,ディレクトリ構成は以下のようになる。 | + | ** Sphinxの設定ファイルを修正 [#e1844232] |
- | cpython-doc-intl/ <- cpython-doc-intl をチェックアウトしたもの | + | Sphinxを使用して日本語ドキュメントが出力されるように,''conf.py''ファイルの''General configuration''のどこかに,以下の追加・修正をする。 |
- | : | + | language = 'ja' |
- | : | + | locale_dirs = ['locale/'] |
- | Doc/ <- 原文に日本語版用の差分を加えたもの | + | gettext_compact = False |
- | locale/ <- py36-locale をチェックアウトしたもの | + | : |
- | .tx/config <- Transifex プロジェクトの設定ファイル | + | : |
- | ja/LC_MESSAGES/ <- Transifex からダウンロードした翻訳ファイル (.po ファイル) | + | today_fmt = '%m/%d/%Y' |
- | : | + | |
- | : | + | |
- | + | ||
- | [[Pythonドキュメント日本語訳プロジェクト>https://github.com/python-doc-ja/python-doc-ja]]からダウンロードした場合は,以下の翻訳ドキュメントのリソースをダウンロードする必要はない。 | + | |
** 翻訳済みリソースをTransifexからダウンロードする [#sb5a1327] | ** 翻訳済みリソースをTransifexからダウンロードする [#sb5a1327] | ||
- | Pythonの[[公式サイト>https://www.python.org/]]からのソースコードには日本語化したドキュメントが入っていないので, Pythonドキュメント日本語訳プロジェクト [[transifex>https://www.transifex.com/]] で翻訳作業を行われているので,そこから日本語訳リソースをダウンロードする。 | + | 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ドキュメント日本語訳プロジェクトのリソースを使う場合は,[[transifex>https://www.transifex.com/]]のアカウントを作成する必要はない。 |
- | まず,Pythonドキュメント日本語訳プロジェクト [[transifex>https://www.transifex.com/]] でアカウントを作成する。~ | + | まず,[[transifex>https://www.transifex.com/]] でアカウントを作成する。アカウントが作成できたらAPIキーを作成しておく。翻訳者として登録しない場合は,アカウントを使用できるのは''15日間''。~ |
- | アカウントが作成できたら,''~/.transifexrc''ファイルを以下の内容で作成する。 | + | ''~/.transifexrc''ファイルを以下の内容で作成する。 |
[https://www.transifex.com] | [https://www.transifex.com] | ||
hostname = https://www.transifex.com | hostname = https://www.transifex.com | ||
- | token = | + | token = xxxxxxxxxxxxxx |
username = <ユーザー名> | username = <ユーザー名> | ||
password = <パスワード> | password = <パスワード> | ||
- | 翻訳者として登録しない場合は,アカウントを使用できるのは''15日間。'' | + | tokenには,作成したAPIキーを設定する。 |
翻訳のチームに参加ボタンを押して参加を表明し,承認されれば(メールで送られてくる),翻訳リソースをダウンロードできるようになる。~ | 翻訳のチームに参加ボタンを押して参加を表明し,承認されれば(メールで送られてくる),翻訳リソースをダウンロードできるようになる。~ | ||
- | Pythonドキュメント日本語訳プロジェクト [[transifex>https://www.transifex.com/]] での翻訳作業の成果を, [[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]] に公開しているようだ。~ |
- | [[Pythonドキュメント日本語訳プロジェクト>https://github.com/python-doc-ja/python-doc-ja]]のリポジトリは,バージョン3.6.5は,自由にダウンロードできる。(02/08/2019時点)~ | + | 翻訳するための設定ファイル.tx/configファイルを作成する。 |
- | バージョン3.6.5の翻訳リソース.poファイルがgithubで公開されているので,それをダウンロードする場合は以下のようにする。~ | + | > cd locale |
+ | > sphinx-intl create-txconfig | ||
+ | |||
+ | Pythonドキュメントソースからメッセージカタログ(.pot)ファイルを作成する。~ | ||
+ | > cd .. | ||
+ | > sphinx-build -b gettext . locale/pot | ||
+ | |||
+ | 翻訳するための設定ファイル.tx/configファイルをpotファイル情報で更新する。 | ||
+ | > cd locale | ||
+ | > sphinx-intl update-txconfig-resources --pot-dir pot --transifex-project-name="python-newest" | ||
+ | > awk '/file_filter/{sub("locales/","");print $0} !/file_filter/{print $0}' .tx/config > .tx/config.2 | ||
+ | > cp .tx/config.2 .tx/config | ||
+ | > rm .tx/config.2 | ||
+ | > tx pull -l ja | ||
+ | とすると,現在翻訳作業中の翻訳リソースの.poファイルがダウンロードできる。 | ||
+ | |||
+ | *** Pythonドキュメント日本語訳プロジェクトのリソースを使う場合 [#n16ba263] | ||
+ | [[Pythonドキュメント日本語訳プロジェクト>https://github.com/python-doc-ja/python-doc-ja]]のリポジトリに日本語訳されたドキュメントリソースがある。最新はバージョン3.6.5。このバージョンで良ければ,以下のようにして.poファイルをダウンロードする。~ | ||
> cd Doc | > cd Doc | ||
> git clone https://github.com/python-doc-ja/py36-locale locale | > git clone https://github.com/python-doc-ja/py36-locale locale | ||
- | > cd locale | + | .poファイルは,Doc/locale/ja/LC_MESSAGES/にダウンロードされる。 |
- | で取得できる。.poファイルは,Doc/locale/ja/LC_MESSAGES/にダウンロードされる。 | + | |
バージョン3.7.2の場合は, | バージョン3.7.2の場合は, | ||
> cd Doc | > cd Doc | ||
> git clone https://github.com/python-doc-ja/py37-locale locale | > git clone https://github.com/python-doc-ja/py37-locale locale | ||
- | > cd locale | ||
とすれば良いと思われるが,残念ながらまだリポジトリにアップされていない。(翻訳作業自体は進んでいる。) | とすれば良いと思われるが,残念ながらまだリポジトリにアップされていない。(翻訳作業自体は進んでいる。) | ||
- | 翻訳作業を行っている transifexから直接バージョン3.7.2の.poファイルをダウンロードする場合は,~ | + | * 日本語ドキュメント(HTML)を作成 [#w722d888] |
- | > locale | + | ''conf.py''ファイルのOptions for HTML outputに,以下の修正をする。 |
- | > tx config mapping-remote https://www.transifex.com/python-doc/python-newest/ | + | html_last_updated_fmt = '%m/%d/%Y' |
- | として,txの設定ファイル''.tx/config''を作成する。~ | + | |
- | そして,.tx/configファイルを, | + | |
- | [main] | + | |
- | host = https://www.transifex.com | + | |
- | type = PO | + | |
- | [python-newest.about] | + | 翻訳した.poファイル(実際には.moファイル)を使用して,ドキュメントファイル(HTMLファイル)をビルドしてみる。~ |
- | file_filter = <lang>/LC_MESSAGES/about.po | + | > make clean html |
- | source_file = pot/about.po | + | |
- | source_lang = en | + | |
- | [python-newest.bugs] | + | 自分で翻訳を修正したりしたい場合は,Doc/locale/ja/LC_MESSAGES/にある.poファイルを,好みに編集してビルドすれば良い。 |
- | file_filter = <lang>/LC_MESSAGES/bugs.po | + | |
- | source_file = pot/bugs.po | + | |
- | source_lang = en | + | |
- | [python-newest.c-api--abstract] | + | これでうまく行けば,''日本語訳されたHTMLのドキュメント''がDoc/build/htmlに作成される。 |
- | file_filter = <lang>/LC_MESSAGES/c-api/abstract.po | + | |
- | source_file = pot/c-api--abstract.po | + | |
- | source_lang = en | + | |
- | : | + | |
- | : | + | |
- | のような構成に修正する。 | + | |
- | そして, | + | * Windowsのヘルプファイルchmを作成する [#s57c9c9b] |
- | > tx pull -l ja | + | HTMLのドキュメントが作成出来れば,Windowsで使われるヘルプファイルである.chmファイルを作成できる。 |
- | とすると,.poファイルがダウンロードできる。 | + | |
- | * 日本語ドキュメント(HTML)を作成 [#w722d888] | + | 作成するには,Microsoftの [[HTML Help Workshop>https://www.microsoft.com/en-us/download/details.aspx?id=21138]] が必要になる。 |
- | Sphinxを使用して日本語ドキュメントが出力されるように,''conf.py''ファイルのGeneral configurationのどこかに,以下の設定を追加する。 | + | |
- | language = 'ja' | + | |
- | locale_dirs = ['locale/'] | + | |
- | gettext_compact = False | + | |
- | 翻訳した.poファイルを使用して,ドキュメントファイル(HTMLファイル)をビルドしてみる。~ | + | |
- | Sphinxを使用して,以下のようにしてドキュメントをビルド作成する。 | + | |
- | > cd .. | + | |
- | > make clean html | + | |
- | 自分で翻訳を修正したりしたい場合は,Doc/locale/ja/LC_MESSAGES/にある.poファイルを,好みに編集してビルドすれば良い。 | + | ** .chmファイルを作成する [#a6884bf6] |
+ | DocディレクトリにMakefile等があるので,それを使ってHTML Help Workshopが使用するプロジェクトファイルを作成する。 | ||
+ | > make htmlhelp | ||
+ | Doc\build\htmlhelpに,HTMLファイルとpythonxxx.hhp,pythonxxx.hhc,pythonxxx.hhk,pythonxxx.stpが作成されている。 | ||
- | これでうまく行けば,''日本語訳されたHTMLのドキュメント''がDoc/build/htmlに作成される。 | + | ''pythonxxx.hhp''をダブルクリックしてHTML Help Workshopを起動しコンパイルすれば,Doc\build\htmlにpythonxxx.chmファイルが作成される。 |
+ | |||
+ | この時,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ファイルを作成することもできる。 | ||
* LaTeXを使ってPDFファイルを作成する [#dac558c6] | * LaTeXを使ってPDFファイルを作成する [#dac558c6] | ||
- | [[LaTeX>https://ja.wikipedia.org/wiki/LaTeX]]を使用して,PDFファイルを作成する。~ | + | Sphinxでは,[[LaTeX>https://ja.wikipedia.org/wiki/LaTeX]]を使用してTeX日本語ドキュメントを出力出来て,そこからPDFファイルを作成できる。~ |
- | この場合,LaTeXやその他の周辺ツール,スタイルファイルなどが必要になる。 | + | この場合,LaTeX([[W32Tex>https://texwiki.texjp.org/?W32TeX]]を使ってる)やその他の周辺ツール,スタイルファイルなどが必要になる。 |
+ | |||
+ | 設定ファイル''conf.py''の''Options for LaTeX output''で,使用するエンジン''xelatex''をコメントアウトする。 | ||
+ | #latex_engine = 'xelatex' | ||
+ | これは,デフォルトの''platex''を使うようにするため。 | ||
- | Sphinxは,デフォルトエンコーディングとしてUTF-8で処理するので,対応を確認をしておく。 | + | Sphinxのクラスにhowtoとmanualがあって,howtoが短い文書,manualが長い文書に利用されているようだ。~ |
- | > platex --help | + | 使用するドキュメントクラスは,デフォルト設定のhowtoに''jreport'',manualに''jsbook''が使われる。変更したい場合は, |
- | : | + | latex_docclass = {"howto": "jsreport", "manual": "jsbook"} |
- | -kanji=STRING set Japanese encoding (STRING=euc|jis|sjis|utf8) | + | のように設定する。 |
- | : | + | |
- | と,表示されれば大丈夫だと思う。 | + | |
- | 日本語用のクラスファイルは,pTeXに付属するjarticle, jreport, jbookと,奥村晴彦氏によるpLaTeX2eのドキュメントクラスjsarticle, jsbookがある。~ | + | Pythonのドキュメントには,İ (U+0130), ı (U+0131), ſ (U+017F), K (U+212A), Ü (U+00DC), ü (U+00FC) , Є (U+0404) の非ASCii文字が含まれている。~ |
- | LaTeXでは,article, report, bookは,それぞれ論文,報告書,書籍用というように,文書量・用途なんかに応じて使い分けされる。 | + | これらをPDFで出力するために,''conf.py''のプリアンプル''latex_elements['preamble']''に,以下のように追加する。 |
+ | latex_elements['preamble'] = r''' | ||
+ | \authoraddress{ | ||
+ | \sphinxstrong{Python Software Foundation}\\ | ||
+ | Email: \sphinxemail{docs@python.org} | ||
+ | } | ||
+ | \let\Verbatim=\OriginalVerbatim | ||
+ | \let\endVerbatim=\endOriginalVerbatim | ||
+ | \usepackage[TS1,T1,T2A]{fontenc} | ||
+ | \usepackage{lmodern} | ||
+ | \usepackage[utf8]{inputenc} | ||
+ | \usepackage{babel} | ||
+ | \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)を修正した。 | ||
- | この日本語を出力用のクラスファイルを利用するには,''conf.py''ファイルのOptions for LaTeX outputに,以下のような設定を追加する。~ | + | いくつかの.texファイル(library.tex,howto-logging.tex,using.tex)で,画像を読み込んでいるところでエラーが出るので,''conf.py''の''Options for LaTeX output''に,以下を追加する。 |
- | また,使用するエンジンを''xelatex''を''pdfplatex''に変更する。 | + | latex_elements['passoptionstopackages'] = r''' |
- | latex_engine = 'pdfplatex' | + | \usepackage[dvipdfmx]{graphicx} |
- | latex_docclass = {"howto": "jsarticle", "manual": "jsbook"} | + | ''' |
- | howto, manualはSphinx独自のクラスファイルで,howtoが短い文書,manualが長い文書用に利用されるようだ。~ | + | |
- | この設定を行うと,howto, manualがそれぞれjsarticle, jsbookをクラスファイルとして利用されるようになる。 | + | |
** texファイルを作成して,さらにpdfファイルを作成する [#ab6bf0be] | ** texファイルを作成して,さらにpdfファイルを作成する [#ab6bf0be] | ||
- | DocディレクトリにMakefile等があるので,それを使ってPDFを作成する。~ | + | DocディレクトリにMakefile等があるので,それを使ってtexファイルを作成する。 |
- | まずtexファイルを作成する。 | + | |
> make latex PAPER=a4 | > make latex PAPER=a4 | ||
この時,文書サイズをA4かletterか指定できる。~ | この時,文書サイズをA4かletterか指定できる。~ | ||
Line 153: | Line 164: | ||
texファイルからPDFファイルに変換してみる。 | texファイルからPDFファイルに変換してみる。 | ||
+ | > cd build/latex | ||
> make all-pdf-ja | > make all-pdf-ja | ||
これで,うまく行けばPDFファイルが作成される。 | これで,うまく行けばPDFファイルが作成される。 | ||
- | |||
- | * Windowsのヘルプファイルchmを作成する [#s57c9c9b] | ||
- | HTMLのドキュメントが作成出来ていれば,Windowsで使われるヘルプファイルである.chmファイルを作成できる。 | ||
- | |||
- | 作成するには,Microsoftの [[HTML Help Workshop>https://www.microsoft.com/en-us/download/details.aspx?id=21138]] が必要になる。~ | ||
- | Visual Studioを使っていっれば,既にインストールされていると思う。 | ||
- | |||
- | ** .chmファイルを作成する [#a6884bf6] | ||
- | DocディレクトリにMakefile等があるので,それを使ってHTML Help Workshopが使用するプロジェクトファイルを作成する。 | ||
- | > make htmlhelp | ||
- | Doc\build\htmlhelpに,HTMLファイルとpythonxxx.hhp,pythonxxx.hhc,pythonxxx.hhk,pythonxxx.stpが作成されている。 | ||
- | |||
- | pythonxxx.hhpをダブルクリックしてHTML Help Workshopを起動しコンパイルすれば,Doc\build\htmlにpythonxxx.chmファイルが作成される。 | ||
- | |||
- | この時,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ファイルが作成される。 | ||
* 作成した日本語ドキュメント [#v8d8ec6c] | * 作成した日本語ドキュメント [#v8d8ec6c] | ||
- | 作成したバージョン3.7.2の日本語ヘルプファイル:#ref(python372jp.chm) | + | 作成したバージョン3.7.2の日本語ヘルプファイル:&ref(python372jp.chm); |