国際化する.¶
バージョン 1.1 で追加.
Sphinxは、Sphinxによって生成されたメッセージ(例えば、ナビゲーション欄)が提供する翻訳の補足として、促進を提供する。 公文. それがそうです。ご参照ください 国際化オプション 構成の詳細は参照されたい。
スフィンクス国際化詳細¶
グート! 1 国際化と現地化の既定の基準だ。それは無邪気にプログラム中のメッセージを翻訳された文字列にマッピングする.Sphinxはこれらの施設を使用して文書全体を翻訳する。
最初に,プロジェクト保守者は翻訳可能な文字列(とも呼ばれる)をすべて収集しなければならない 消息 )を翻訳者に理解させるために。Sphinxは呼び出しによって sphinx-build -b gettext
それがそうです。
文書木内の各要素は1つのメッセージで終了し、これにより、リストは平均的に異なるブロックに分割され、大段落は元の文書と同じ粗粒度を維持する。これにより,文書のシームレスな更新が実現され,自由テキスト段落中の翻訳者にいくつかの文脈が提供される.保守員のタスクは,これを行うための合理的な自動手法がないため,大きな段落を分割することである.
Sphinxで成功しました MessageCatalogBuilder
一連のことがわかります .pot
あなたの出力ディレクトリのファイルです。これは…。 ディレクトリテンプレート あなたのオリジナル言語を使ったメールも含まれています only それがそうです。
翻訳者に渡すことができます翻訳者はそれらを .po
ファイル-いわゆる メールリスト. -元のメッセージから外国語文字列へのマッピングが含まれています。
グート! これらをコンパイルして バイナリ星表 通り抜ける msgfmt 効率的な理由で。以下のコマンドを使用して、これらのファイルを検索することができます locale_dirs
あなたのために language
ライオンの顔像は自動的に取ります
例えばあなたは文書を持っています usage.rst
あなたのライオンの顔写真プロジェクトでは♪the グート! Builderはそのメッセージを入れます usage.pot
それがそうです。スペイン語の通訳がいると想像してみてください 2 保存されています usage.po
-バージョンを翻訳するには、以下の説明に従う必要があります。
メッセージディレクトリを、例えば領域設定ディレクトリとしてコンパイルします。
locale
最終的には./locale/es/LC_MESSAGES/usage.mo
あなたのソースディレクトリにあります(その中でes
スペイン語の言語コードです)::msgfmt "usage.po" -o "locale/es/LC_MESSAGES/usage.mo"
集
locale_dirs
至る["locale/"]
それがそうです。実行に必要な構築.
ライオンの顔像-intlを用いた翻訳¶
速やかに誘導する.¶
sphinx-intl Sphinx変換フローを扱う有用なツールである.本節では,簡単な翻訳方法を紹介する sphinx-intl それがそうです。
取り付ける sphinx-intl それがそうです。
$ pip install sphinx-intl
構成を追加する
conf.py
それがそうです。locale_dirs = ['locale/'] # path is example but recommended. gettext_compact = False # optional.
This case-study assumes that BUILDDIR is set to
_build
,locale_dirs
is set tolocale/
andgettext_compact
is set toFalse
(the Sphinx document is already configured as such).翻訳可能メッセージは、POTファイルに解凍される。
$ make gettext
生成されたPOTファイルは
_build/gettext
カタログです。Poファイルを生成する.
上記の手順で生成されたPOTファイルを用いる.
$ sphinx-intl update -p _build/gettext -l de -l ja
完了後、生成されたpoファイルは以下のディレクトリに格納されます。
./locale/de/LC_MESSAGES/
./locale/ja/LC_MESSAGES/
POファイルを翻訳します。
上述したようにこれらは
./locale/<lang>/LC_MESSAGES
カタログです。このようなファイルの例はSphinxからですbuilders.po
以下に示す.# a5600c3d2e3d48fc8c261ea0284db79b #: ../../builders.rst:4 msgid "Available builders" msgstr "<FILL HERE BY TARGET LANGUAGE>"
別の場合、msgidは複数行テキストであり、reStrutiredText文法を含む:
# 302558364e1d41c69b3277277e34b184 #: ../../builders.rst:9 msgid "" "These are the built-in Sphinx builders. More builders can be added by " ":ref:`extensions <extensions>`." msgstr "" "FILL HERE BY TARGET LANGUAGE FILL HERE BY TARGET LANGUAGE FILL HERE " "BY TARGET LANGUAGE :ref:`EXTENSIONS <extensions>` FILL HERE."
休憩記法を破らないように気をつけてください。ほとんどのブログ編集者はこれを手伝ってくれます
翻訳された文書を生成する.
あなたは1つが必要です
language
パラメータ入力conf.py
あるいは、コマンドラインでパラメータを指定することもできます。BSD/GNU makeについては、実行:
$ make -e SPHINXOPTS="-D language='de'" html
Windows用 cmd.exe 実行:
> set SPHINXOPTS=-D language=de > .\make.bat html
PowerShellについては、実行してください。
> Set-Item env:SPHINXOPTS "-D language=de" > .\make.bat html
おめでとう!あなたはいてもいい _build/html
カタログです。
バージョン 1.3 で追加: sphinx-build Makeコマンドから呼び出されたものはpoファイルをmoファイルに構築する.
1.2.x以上のバージョンを使用している場合は、呼び出してください sphinx-intl build 命令する前に make 指揮する。
新しいPOTファイルを使用してPOファイルを更新します¶
文書が更新された場合には,更新されたPOTファイルを生成し,翻訳後のPOファイルに差分を適用する必要がある.POTファイル中の更新をpoファイルに適用するために、ご利用ください sphinx-intl update 指揮する。
$ sphinx-intl update -p _build/locale
Tranfexサービスを用いたチーム翻訳¶
Transifex Webインタフェースによる協調翻訳を可能にするいくつかのサービスの1つである.翻訳を簡単に取得してプッシュすることができるPythonベースのコマンドラインクライアントを持っています。
取り付ける transifex-client それがそうです。
必要なのは tx リソース(POTファイル)をアップロードするコマンド.
$ pip install transifex-client
あなたのを作成します transifex アカウントとあなたの文書のための新しいプロジェクトを作成します。
現在、Tranphfexは、1つの翻訳項目に複数のバージョンの文書を有することを許可していないので、項目名に1つのバージョン番号を含むことが望ましい。
例:
- プロジェクトID
sphinx-document-test_1_0
- プロジェクトURL
https://www.transifex.com/projects/p/sphinx-document-test_1_0/
以下の項目の構成ファイルの作成 tx 指揮する。
このプロセスは
.tx/config
現在のディレクトリのうち、1つは~/.transifexrc
認証情報を含むファイル。$ tx init Creating .tx folder... Transifex instance [https://www.transifex.com]: ... Please enter your transifex username: <transifex-username> Password: <transifex-password> ... Done.
POTファイルをTranfexサービスにアップロードする.
POTファイルを登録する
.tx/config
ファイル:$ cd /your/document/root $ sphinx-intl update-txconfig-resources --pot-dir _build/locale \ --transifex-project-name sphinx-document-test_1_0
POTファイルをアップロードします:
$ tx push -s Pushing translations for resource sphinx-document-test_1_0.builders: Pushing source file (locale/pot/builders.pot) Resource does not exist. Creating... ... Done.
TRANSPEFEX上で翻訳を転送する.
翻訳後のpo文書を引いて翻訳後のHTMLを作成する.
翻訳後のディレクトリを取得してmoファイルを構築します。たとえば,ドイツ語(De)のmoファイルを構築するためには:
$ cd /your/document/root $ tx pull -l de Pulling translations for resource sphinx-document-test_1_0.builders (...) -> de: locale/de/LC_MESSAGES/builders.po ... Done.
引用する. make html (BSD/GNU製用):
$ make -e SPHINXOPTS="-D language='de'" html
それだけだ!
ちなみに
ローカル翻訳とTRANSPEFEXでの翻訳
すべての言語のpoファイルを送りたい場合は、ご利用いただけます tx push -t 指揮する。気をつけて。この操作はTransition fexにおける翻訳をカバーする.
言い換えれば、サービスおよびローカルpoファイルのそれぞれを更新した場合、それらを統合するには多くの時間と労力がかかります。
Sphinx参照翻訳への貢献¶
新しい貢献者がSphinx参考資料を翻訳する方式を提案するのはTranfex上の翻訳チームに参加することである.
ある sphinx translation page Sphinx(マスタ)文書に用いられる.
ログインして transifex サービス。
回ってください。 sphinx translation page それがそうです。
クリック
Request language
用紙に記入します。Tranfexライオンの顔像の翻訳メンテナンススタッフが受け入れるのを待っています。
(検収後)変換時に翻訳を行う.
脚注
- 1
ご参照ください GNU gettext utilities このソフトウェアキットに関する詳細な情報を取得します。
- 2
誰もスペイン宗教裁判所を期待していないから!