(機械翻訳) pyramid.i18n
¶
-
class
TranslationString
[ソース] a:term: `翻訳文字列 'のコンストラクタです。変換文字列は、特別なメタデータを持つUnicodeのようなオブジェクトです。
このコンストラクタは `` msgid``という名前の引数を1つ受け取ります。 `` msgid``は翻訳文字列の:term: message identifier`でなければなりません。これは、デフォルトのシステムエンコーディングでエンコードされた ` unicode``オブジェクトまたは `` str``オブジェクトでなければなりません。
このオブジェクトのコンストラクタへのオプションのキーワード引数には、 `` domain``、 `` default``、および `` mapping``があります。
`` domain``は:term: translation domain`を表します。デフォルトでは、翻訳ドメインは ` None``であり、この翻訳文字列がデフォルトの翻訳ドメイン(通常は `` messages``)に関連付けられていることを示します。
`` default``は、この翻訳文字列の明示的な*デフォルトテキスト*を表します。翻訳文字列を翻訳できない場合は、デフォルトのテキストが表示されます。通常、翻訳文字列の `` msgid``はデフォルトテキストとして二重義務を果たします。ただし、このオプションを使用すると、この変換文字列に異なるデフォルトテキストを指定できます。この機能は、翻訳文字列のデフォルトが複雑すぎるか、メッセージ識別子として使用するには時間がかかりすぎる場合に便利です。 `` default``が提供されている場合、デフォルトのシステムエンコーディング(通常はASCIIを意味します)でエンコードされた `` unicode``オブジェクトまたは `` str``オブジェクトでなければなりません。 `` default``が `` None``(デフォルト値)の場合、この翻訳文字列で使われる `` msgid``値は `` default``の値とみなされます。
`` mapping``が指定されていれば、辞書のようなオブジェクトでなければなりません:term: 翻訳文字列 置換マーカー `` msgid``(あるいは `` default`` )値を返します。
`` context``は:term: 翻訳コンテキスト`を表します。デフォルトでは、翻訳コンテキストは ` None``です。
翻訳文字列が構築された後、ほとんどの他の `` unicode``オブジェクトのように動作します。 `` unicode``オブジェクトのように扱われると、その `` msgid``値が表示されます。 `` ugettext``メソッドが呼び出されたときだけ、それは翻訳されます。
そのデフォルト値は、オブジェクトの `` default``属性として利用できます。term: translation domain`は domain``属性として利用可能であり、 mapping``は `マッピング``属性です。そうでなければ、オブジェクトはUnicode文字列のように動作します。
-
TranslationStringFactory
(factory_domain)[ソース]¶ 工場への各呼び出しに `` domain``値を渡さなくても、変換文字列を生成するファクトリを作成します。単一の引数がこのクラスのコンストラクタ: `` domain``に渡されます。この値は、このクラスの `` __call__``によって生成された:class: translationstring.TranslationString`オブジェクトの domain``値として使用されます。このクラスのインスタンスの ` __call__``メソッドに提供される `` msgid``、 `` mapping``、 `` default``の値は、:class: translationstring .TranslationString
-
class
Localizer
(locale_name, translations)[ソース]¶ 現在の要求のロケール名に関連する変換および複数化を提供するオブジェクト。 A:class: pyramid.i18n.Localizer`オブジェクトは、:func: pyramid.i18n.get_localizer`関数を使って作成されます。
-
locale_name
¶ このローカライザのロケール名( `` en``や `` en_US``など)。
-
pluralize
(singular, plural, n, domain=None, mapping=None)[ソース]¶ 単項/複数の対としてterm :: message identifier`オブジェクトを使用し、gettext複数形サポートを使用してメッセージに現れる数を表す n``値を使用して、Unicode文字列変換を返します。 ` singular``と `` plural``オブジェクトは、Unicode文字列でなければなりません。すべてのメタデータが無視されるため、変換文字列オブジェクトを引数として使用する理由はありません。
`` n``は要素数を表します。 `` domain``は多元化を行うための変換ドメインであり、 `` mapping``は結果に使用すべき補間マッピングです。 `` domain``が与えられていなければ、デフォルトのドメインが使われます(通常 `` messages``)。
例:
num = 1 translated = localizer.pluralize('Add ${num} item', 'Add ${num} items', num, mapping={'num':num})
n!= 1以外の複数の規則を持つ言語に必要なgettextの複数のサポートを使用する場合、 "singular"引数は変換ファイルで定義されたmessage_idでなければなりません。この場合、複数の引数は使用されません。
例:
num = 1 translated = localizer.pluralize('item_plural', '', num, mapping={'num':num})
-
translate
(tstring, domain=None, mapping=None)[ソース]¶ 現在の言語にa:term: 翻訳文字列 'を翻訳し、その結果の*置換マーカー*を補間します。 ` translate``メソッドは、 `` tstring``(必須)、 `` domain``(オプション)、 `` mapping``(オプション)の3つの引数を受け入れます。呼び出されると、現在のロケールを使用して `` tstring``変換文字列を `` unicode``オブジェクトに変換します。現在のロケールを判別できなかった場合は、デフォルト値の補間結果が返されます。オプションの `` domain``引数は、 `` tstring``のドメインを指定または上書きするために使用できます( `` tstring``が翻訳文字列ではなく通常の文字列のときに便利です)。オプションの `` mapping``引数は、 `` tstring``補間マッピングを指定または上書きできます。これは、 `` tstring``引数が変換文字列ではなく単純文字列である場合に便利です。
例:
from pyramid.18n import TranslationString ts = TranslationString('Add ${item}', domain='mypackage', mapping={'item':'Item'}) translated = localizer.translate(ts)
例:
translated = localizer.translate('Add ${item}', domain='mypackage', mapping={'item':'Item'})
-
-
default_locale_negotiator
(request)[ソース]¶ デフォルト:term: locale negotiator`です。ロケール名または ` None``を返します。
- まず、ネゴシエーターは要求オブジェクトの `` _LOCALE_``属性を探します(おそらく:term: event`のビューまたはリスナーによって設定されます)。属性が存在し、 ` None``でなければ、その値が使用されます。
- それから、 `` request.params ['_ LOCALE _'] ``の値を探します。
- それから、 `` request.cookies ['_ LOCALE _'] ``の値を探します。
- 最後に、ネゴシエーターは、以前の検査のいずれかを介してロケールを判定できない場合(ロケールネゴシエーターが「None」を返す場合、「:デフォルトロケール名」を使用する必要があることを意味する) 。)
-
make_localizer
(current_locale_name, translation_directories)[ソース]¶ 翻訳ディレクトリのリストにある翻訳から、提供されたロケール名に対応するa::class: `pyramid.i18n.Localizer`オブジェクトを作成します。
アプリケーション内で:app: Pyramid`国際化とローカライゼーションサービスを使用する方法の詳細は、:ref: i18n_chapter`を参照してください。