(機械翻訳) 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'})
get_localizer(request)[ソース]

バージョン 1.5 で撤廃: 代わりに:attr: `pyramid.request.Request.localizer`属性を直接使用してください。現在のリクエストのロケール名に対応するa:class: `pyramid.i18n.Localizer`オブジェクトを取得します。

negotiate_locale_name(request)[ソース]

現在のリクエストに関連する:term: `ロケール名`をネゴシエートして返します。

get_locale_name(request)[ソース]

バージョン 1.5 で撤廃: 代わりに、attr: `pyramid.request.Request.locale_name`を直接使用してください。現在のリクエストに関連する:term: `ロケール名`を返します。

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`を参照してください。