多角的支持

多様性サポートは、CLDRをめぐる多様なルールを提供する機能を提供する。これは,多様なルールを解析して評価し,gettextのような他のフォーマットに変換することができる.

基本的なインタフェース

class babel.plural.PluralRule(rules)

言語多様性ルールのセットを表しています構造関数受容(tag,expr)タプルリストまたは CLDR rules それがそうです。生成されたオブジェクトは、文字列の複数の形式を表し、フォーマットのタグを返すための正または負の数(整数および浮動小数点数)を有するパラメータを受け取る呼び出し可能である。

>>> rule = PluralRule({'one': 'n is 1'})
>>> rule(1)
'one'
>>> rule(2)
'other'

現在、CLDRは、ゼロ、1、2、少ない、多い、および他のタグを定義しており、OTHERは暗黙的デフォルト値である。ルールは相互排他的であるべきであり、与えられた値については、1つのルールのみが適用されるべきである(すなわち、条件は、複数のルール要素のうちの1つのみが真であるべきである。

classmethod parse(rules)

1つを作ることができます PluralRule 実例です。もしルールが PluralRule オブジェクトは,そのオブジェクトを返す.

パラメータ

rules -- ルールはリストや辞書、または PluralRule 客体.

例外

RuleError -- 式の形式が正しくなければ

property rules

♪the PluralRule Unicode複数規則の辞書とする.

>>> rule = PluralRule({'one': 'n is 1'})
>>> rule.rules
{'one': 'n is 1'}
property tags

このルールでは明示的に定義された1組のタグ.暗黙的デフォルト設定 'other' 明確な規則がない限り、規則はこの集合の一部ではない。

変換機能.

babel.plural.to_javascript(rule)

変換規則リスト/辞書または PluralRule オブジェクトはJavaScript関数に変換される.この関数は外部ライブラリに依存しない:

>>> to_javascript({'one': 'n is 1'})
"(function(n) { return (n == 1) ? 'one' : 'other'; })"

実現詳細:生成された関数は,範囲操作に関する式を複数回求めることが可能である.このような利点は,外部補助関数を必要とせず,これらの簡単な計算にとって性能に大きな影響を与えないことである.

パラメータ

rule -- ルールはリストや辞書、または PluralRule 客体.

例外

RuleError -- 式の形式が正しくなければ

babel.plural.to_python(rule)

変換規則リスト/辞書または PluralRule オブジェクトは通常のPython関数に変換されます。これは,実際のルール対象とは無関係に実関数が必要な場合に非常に有用である:

>>> func = to_python({'one': 'n is 1', 'few': 'n in 2..4'})
>>> func(1)
'one'
>>> func(3)
'few'
>>> func = to_python({'one': 'n in 1,11', 'few': 'n in 3..10,13..19'})
>>> func(11)
'one'
>>> func(15)
'few'
パラメータ

rule -- ルールはリストや辞書、または PluralRule 客体.

例外

RuleError -- 式の形式が正しくなければ

babel.plural.to_gettext(rule)

複数のルールはgettext式である.技術的には,gettext式は整数に限られており,タグではなくインデックスを返す.

>>> to_gettext({'one': 'n is 1', 'two': 'n is 2'})
'nplurals=3; plural=((n == 1) ? 0 : (n == 2) ? 1 : 2)'
パラメータ

rule -- ルールはリストや辞書、または PluralRule 客体.

例外

RuleError -- 式の形式が正しくなければ