国際化する.

バージョン 1.1 で追加.

Sphinxは、Sphinxによって生成されたメッセージ(例えば、ナビゲーション欄)が提供する翻訳の補足として、促進を提供する。 公文. それがそうです。ご参照ください 国際化オプション 構成の詳細は参照されたい。

../../_images/translation.svg

Sphinxでは翻訳のワークフロー可視化を実現する.(この図は、以下の担当者によって作成されます。 plantuml ()

スフィンクス国際化詳細

グート! 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/"] それがそうです。

  • language 至る es (通過することもできる -D )。

  • 実行に必要な構築.

ライオンの顔像-intlを用いた翻訳

速やかに誘導する.

sphinx-intl Sphinx変換フローを扱う有用なツールである.本節では,簡単な翻訳方法を紹介する sphinx-intl それがそうです。

  1. 取り付ける sphinx-intl それがそうです。

    $ pip install sphinx-intl
    
  2. 構成を追加する 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 to locale/ and gettext_compact is set to False (the Sphinx document is already configured as such).

  3. 翻訳可能メッセージは、POTファイルに解凍される。

    $ make gettext
    

    生成されたPOTファイルは _build/gettext カタログです。

  4. Poファイルを生成する.

    上記の手順で生成されたPOTファイルを用いる.

    $ sphinx-intl update -p _build/gettext -l de -l ja
    

    完了後、生成されたpoファイルは以下のディレクトリに格納されます。

    • ./locale/de/LC_MESSAGES/

    • ./locale/ja/LC_MESSAGES/

  5. 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."
    

    休憩記法を破らないように気をつけてください。ほとんどのブログ編集者はこれを手伝ってくれます

  6. 翻訳された文書を生成する.

    あなたは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ベースのコマンドラインクライアントを持っています。

  1. 取り付ける transifex-client それがそうです。

    必要なのは tx リソース(POTファイル)をアップロードするコマンド.

    $ pip install transifex-client
    
  2. あなたのを作成します transifex アカウントとあなたの文書のための新しいプロジェクトを作成します。

    現在、Tranphfexは、1つの翻訳項目に複数のバージョンの文書を有することを許可していないので、項目名に1つのバージョン番号を含むことが望ましい。

    例:

    プロジェクトID

    sphinx-document-test_1_0

    プロジェクトURL

    https://www.transifex.com/projects/p/sphinx-document-test_1_0/

  3. 以下の項目の構成ファイルの作成 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.
    
  4. 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.
    
  5. TRANSPEFEX上で翻訳を転送する.

  6. 翻訳後の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(マスタ)文書に用いられる.

  1. ログインして transifex サービス。

  2. 回ってください。 sphinx translation page それがそうです。

  3. クリック Request language 用紙に記入します。

  4. Tranfexライオンの顔像の翻訳メンテナンススタッフが受け入れるのを待っています。

  5. (検収後)変換時に翻訳を行う.

脚注

1

ご参照ください GNU gettext utilities このソフトウェアキットに関する詳細な情報を取得します。

2

誰もスペイン宗教裁判所を期待していないから!