I 18 N API¶
-
sphinx.locale.
init
(locale_dirs: List[Optional[str]], language: str, catalog: str = 'sphinx', namespace: str = 'general') → Tuple[gettext.NullTranslations, bool][ソース]¶ 以下の位置でディレクトリを検索する locale_dirs そして 確保する. NullTranslationsディレクトリは少なくとも1つ設定されている translators それがそうです。何度も呼び出したり何度も呼び出したりすると
.mo
ファイルを見つけてその内容を統合するinit
再入)。
-
sphinx.locale.
init_console
(locale_dir: str, catalog: str) → Tuple[gettext.NullTranslations, bool][ソース]¶ コンソールの領域設定を初期化します。
バージョン 1.8 で追加.
-
sphinx.locale.
get_translation
(catalog: str, namespace: str = 'general') → Callable[ソース]¶ 基礎を得ることができます カタログ. そして 命名空間. それがそうです。
拡張は、このインタフェースを使用して拡張上のメッセージを翻訳することができる:
import os from sphinx.locale import get_translation MESSAGE_CATALOG_NAME = 'myextension' # name of *.pot, *.po and *.mo files _ = get_translation(MESSAGE_CATALOG_NAME) text = _('Hello Sphinx!') def setup(app): package_dir = path.abspath(path.dirname(__file__)) locale_dir = os.path.join(package_dir, 'locales') app.add_message_catalog(MESSAGE_CATALOG_NAME, locale_dir)
このコードを用いて,Shinxは以下の位置からメッセージリストを検索する.
${{package_dir}}/locales/${{language}}/LC_MESSAGES/myextension.mo
それがそうです。♪thelanguage
検索に使います。バージョン 1.8 で追加.
-
sphinx.locale.
_
(message: str, *args: Any) → str¶ 文書メッセージ(メニュー,タグ,トピックなど)の翻訳機能.この関数は以下のとおりである
language
セット。
-
sphinx.locale.
__
(message: str, *args: Any) → str¶ Translation function for console messages This function follows locale setting (LC_ALL, LC_MESSAGES and so on).
外延国際化 (i18n )と現地化 (l10n )I 18 N APIの使用¶
バージョン 1.8 で追加.
拡張は自然にメッセージ翻訳を伴ってくる.この点は中で簡単にまとめた sphinx.locale.get_translation()
助けて。
実際には
メッセージディレクトリのための名前を選択します。その名前は一意でなければなりません。メッセージディレクトリの名前は、通常、内線名を使用します。
あなたの拡張ソースですべてのメッセージを翻訳可能としてマークします。
sphinx.locale.get_translation()
関数は通常名前を変えます_()
例えば、:from sphinx.locale import get_translation MESSAGE_CATALOG_NAME = 'myextension' _ = get_translation(MESSAGE_CATALOG_NAME) translated_text = _('Hello Sphinx!')
内線を設定して専用の翻訳を識別します。
def setup(app): package_dir = path.abspath(path.dirname(__file__)) locale_dir = os.path.join(package_dir, 'locales') app.add_message_catalog(MESSAGE_CATALOG_NAME, locale_dir)
メッセージディレクトリテンプレートの生成
*.pot
一般的にはlocale/
ソースディレクトリ、例えば Babel :$ pybabel extract --output=src/locale/myextension.pot src/
メール·ディレクトリの作成 (
*.po
)拡張には、例えば、ローカル化された各言語が提供されます。 Babel :$ pybabel init --input-file=src/locale/myextension.pot --domain=myextension --output-dir=src/locale --locale=fr_FR
各言語のメーリングリストを手動で翻訳する
メーリングリストをコンパイルして
*.mo
ファイル、例えば Babel :$ pybabel compile --directory=src/locale --domain=myextension
拡張に等価な行を追加することにより,ソフトウェアパッケージのインストール時にメッセージディレクトリファイルを配布することを確保する.
MANIFEST.in
:recursive-include src *.pot *.po *.mo
内線のメッセージが変更された場合、例えば、メッセージディレクトリテンプレートとメッセージディレクトリを更新する必要があります。 Babel :
$ pybabel extract --output=src/locale/myextension.pot src/
$ pybabel update --input-file=src/locale/myextension.pot --domain=myextension --output-dir=src/locale