一般支援機能

バベルタワーには、バーベル塔自体では使用されていないが、それが提供する機能と組み合わせた有用な従来のブースターが付属している。

便利な手伝い

class babel.support.Format(locale, tzinfo=None)

パッケージは、特定の領域および時間領域に結合された様々な日付およびデジタルフォーマット関数を提供する。

>>> from babel.util import UTC
>>> from datetime import date
>>> fmt = Format('en_US', UTC)
>>> fmt.date(date(2007, 4, 1))
u'Apr 1, 2007'
>>> fmt.decimal(1.2345)
u'1.234'
currency(number, currency)

領域設定でフォーマットされた所与の通貨の数字を返します。

date(date=None, format='medium')

所与のモードに従ってフォーマットされた日付を返します。

>>> from datetime import date
>>> fmt = Format('en_US')
>>> fmt.date(date(2007, 4, 1))
u'Apr 1, 2007'
datetime(datetime=None, format='medium')

所与のモードに従ってフォーマットされた日時に戻ります。

>>> from datetime import datetime
>>> from pytz import timezone
>>> fmt = Format('en_US', tzinfo=timezone('US/Eastern'))
>>> fmt.datetime(datetime(2007, 4, 1, 15, 30))
u'Apr 1, 2007, 11:30:00 AM'
decimal(number, format=None)

領域設定のためにフォーマットされた10進数を返します。

>>> fmt = Format('en_US')
>>> fmt.decimal(1.2345)
u'1.234'
number(number)

領域のためにフォーマットされた整数を設定します。

>>> fmt = Format('en_US')
>>> fmt.number(1099)
u'1,099'
percent(number, format=None)

戻り領域は、フォーマットの割合の数字を設定します。

>>> fmt = Format('en_US')
>>> fmt.percent(0.34)
u'34%'
scientific(number)

科学記数法でフォーマットされた領域設定数字を返す.

time(time=None, format='medium')

所与のモードに従ってフォーマットされた時間に戻ります。

>>> from datetime import datetime
>>> from pytz import timezone
>>> fmt = Format('en_US', tzinfo=timezone('US/Eastern'))
>>> fmt.time(datetime(2007, 4, 1, 15, 30))
u'11:30:00 AM'
timedelta(delta, granularity='second', threshold=0.85, format='long', add_direction=False)

与えられた領域によって設定されたルールに従って時間増分を返す.

>>> from datetime import timedelta
>>> fmt = Format('en_US')
>>> fmt.timedelta(timedelta(weeks=11))
u'3 months'
class babel.support.LazyProxy(func, *args, **kwargs)

実際のオブジェクトのエージェントオブジェクトを計算するために指定された関数に依頼する.

>>> def greeting(name='world'):
...     return 'Hello, %s!' % name
>>> lazy_greeting = LazyProxy(greeting, name='Joe')
>>> print(lazy_greeting)
Hello, Joe!
>>> u'  ' + lazy_greeting
u'  Hello, Joe!'
>>> u'(%s)' % lazy_greeting
u'(Hello, Joe!)'

たとえば,これは遅延翻訳機能を実現し,実際の翻訳を実際に文字列を使用するまで遅延させるために用いることができる.この行動の基本原理は,ユーザの領域設定がつねに利用可能ではない可能性があることである.Webアプリケーションでは,処理要求時にのみ領域設定が分かる.

The proxy implementation attempts to be as complete as possible, so that the lazy objects should mostly work as expected, for example for sorting:

>>> greetings = [
...     LazyProxy(greeting, 'world'),
...     LazyProxy(greeting, 'Joe'),
...     LazyProxy(greeting, 'universe'),
... ]
>>> greetings.sort()
>>> for greeting in greetings:
...     print(greeting)
Hello, Joe!
Hello, universe!
Hello, world!

Gettextサポート

class babel.support.Translations(fp=None, domain=None)

翻訳ディレクトリクラスを拡張する.

add(translations, merge=True)

与えられた翻訳をディレクトリに追加する.

翻訳されたドメインが現在のディレクトリのドメインと異なる場合,様々なユーザがしかアクセスできないディレクトリに追加する. d*gettext 機能する。

パラメータ
  • translations -- ♪the Translations 追加すべきメッセージが含まれているインスタンス

  • merge -- 追加されたメッセージドメインの翻訳が既存の翻訳と統合されるべきかどうか

classmethod load(dirname=None, locales=None, domain=None)

与えられたディレクトリから翻訳をロードする.

パラメータ
  • dirname -- 包含 MO ファイル.ファイル

  • locales -- 好ましい順に配列された領域設定リスト(このリストの項目は、 Locale オブジェクトまたは領域設定文字列)

  • domain -- メッセージドメイン(デフォルト値:‘Messages’)

merge(translations)

与えられた翻訳をディレクトリに統合する.

指定されたディレクトリ内のメッセージ変換は、既存のディレクトリ内の同じ識別子を有する任意のメッセージをカバーする。

パラメータ

translations -- ♪the Translations インスタンスは、統合されるべきメッセージが含まれる。