メッセージとカタログ¶
このモジュールは、ディレクトリおよびメッセージ情報を保存するための基本インターフェースを提供する。これは通常gettextディレクトリを修正するために用いられるが,実際に翻訳を使用するためには用いられていない
カタログ.¶
-
class
babel.messages.catalog.
Catalog
(locale=None, domain=None, header_comment='# Translations template for PROJECT.\n# Copyright (C) YEAR ORGANIZATION\n# This file is distributed under the same license as the PROJECT project.\n# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n#', project=None, version=None, copyright_holder=None, msgid_bugs_address=None, creation_date=None, revision_date=None, last_translator=None, language_team=None, charset=None, fuzzy=True)¶ メッセージリストの表示形式.
-
__iter__
()¶ リスト中のすべてのエントリを追加順にトラバースして生成する Message オブジェクトは、エントリごとに作成されます。
- 戻り値の型
iterator
-
add
(id, string=None, locations=(), flags=(), auto_comments=(), user_comments=(), previous_id=(), lineno=None, context=None)¶ 指定されたIDを有するメッセージを追加または更新する。
>>> catalog = Catalog() >>> catalog.add(u'foo') <Message ...> >>> catalog[u'foo'] <Message u'foo' (flags: [])>
この方法は簡単に1つを構築しました Message object with the given arguments and invokes `_ _setitem__``オブジェクトと.
- パラメータ
id -- メッセージID、または
(singular, plural)
多元化可能なメッセージのためのタプルstring -- 翻訳されたメッセージ文字列、または
(singular, plural)
多元化可能なメッセージのためのタプルlocations -- 一連
(filename, lineno)
タプル.flags -- 旗のグループや一連の旗
auto_comments -- 一連の自動注釈.
user_comments -- 一連のユーザーコメント
previous_id -- 前のメッセージID、または
(singular, plural)
多元化可能なメッセージのためのタプルlineno -- POファイルでmsgid行の行番号を見つけます(あれば
context -- 情報文脈.
-
check
()¶ 目次中の翻訳に対して様々な検証検査を行う.
検証されていないすべてのメッセージについて、この方法は1つを生成する。
(message, errors)
メタグループ、その中でmessage
はい。 Message 相手とerrors
一連のものです TranslationError 物体です。- 戻り値の型
iterator
-
delete
(id, context=None)¶ 指定されたIDおよびコンテキストを有するメッセージを削除します。
- パラメータ
id -- メッセージID
context -- メッセージコンテキスト、または
None
文脈がない場合
-
get
(id, context=None)¶ 指定されたIDおよびコンテキストを有するメッセージを返す.
- パラメータ
id -- メッセージID
context -- メッセージコンテキスト、または
None
文脈がない場合
-
property
header_comment
¶ 目次の見出し注釈。
>>> catalog = Catalog(project='Foobar', version='1.0', ... copyright_holder='Foo Company') >>> print(catalog.header_comment) # Translations template for Foobar. # Copyright (C) ... Foo Company # This file is distributed under the same license as the Foobar project. # FIRST AUTHOR <EMAIL@ADDRESS>, .... #
文字列からヘッダを設定することもできます。見出しを再検索する際には,任意の既知の大文字変数が置き換えられる:
>>> catalog = Catalog(project='Foobar', version='1.0', ... copyright_holder='Foo Company') >>> catalog.header_comment = '''\ ... # The POT for my really cool PROJECT project. ... # Copyright (C) 1990-2003 ORGANIZATION ... # This file is distributed under the same license as the PROJECT ... # project. ... #''' >>> print(catalog.header_comment) # The POT for my really cool Foobar project. # Copyright (C) 1990-2003 Foo Company # This file is distributed under the same license as the Foobar # project. #
- タイプ
unicode
-
language_team
¶ 言語チームの名前とメールアドレスです。
-
last_translator
¶ 最後の通訳の名前とメールアドレスです。
-
property
mime_headers
¶ ディレクトリのMIMEヘッダ、特殊な使用
msgid ""
入る。領域設定が設定されているか否かによって,この属性の振舞いはやや異なり,後者はディレクトリが実際に翻訳されたテンプレートであることを示している.
以下は、このようなディレクトリテンプレートの出力例である。
>>> from babel.dates import UTC >>> created = datetime(1990, 4, 1, 15, 30, tzinfo=UTC) >>> catalog = Catalog(project='Foobar', version='1.0', ... creation_date=created) >>> for name, value in catalog.mime_headers: ... print('%s: %s' % (name, value)) Project-Id-Version: Foobar 1.0 Report-Msgid-Bugs-To: EMAIL@ADDRESS POT-Creation-Date: 1990-04-01 15:30+0000 PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE Last-Translator: FULL NAME <EMAIL@ADDRESS> Language-Team: LANGUAGE <LL@li.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Generated-By: Babel ...
次に、設定領域設定時の出力例を示す。
>>> revised = datetime(1990, 8, 3, 12, 0, tzinfo=UTC) >>> catalog = Catalog(locale='de_DE', project='Foobar', version='1.0', ... creation_date=created, revision_date=revised, ... last_translator='John Doe <jd@example.com>', ... language_team='de_DE <de@example.com>') >>> for name, value in catalog.mime_headers: ... print('%s: %s' % (name, value)) Project-Id-Version: Foobar 1.0 Report-Msgid-Bugs-To: EMAIL@ADDRESS POT-Creation-Date: 1990-04-01 15:30+0000 PO-Revision-Date: 1990-08-03 12:00+0000 Last-Translator: John Doe <jd@example.com> Language: de_DE Language-Team: de_DE <de@example.com> Plural-Forms: nplurals=2; plural=(n != 1) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Generated-By: Babel ...
- タイプ
list
-
property
num_plurals
¶ ディレクトリやエリアに使用する複数の数を設定する.
>>> Catalog(locale='en').num_plurals 2 >>> Catalog(locale='ga').num_plurals 5
- タイプ
int
-
property
plural_expr
¶ ディレクトリや領域設定に用いる複数式.
>>> Catalog(locale='en').plural_expr '(n != 1)' >>> Catalog(locale='ga').plural_expr '(n==1 ? 0 : n==2 ? 1 : n>=3 && n<=6 ? 2 : n>=7 && n<=10 ? 3 : 4)' >>> Catalog(locale='ding').plural_expr # unknown locale '(n != 1)'
- タイプ
string_types
-
property
plural_forms
¶ 戻り領域に設定された複数形式の宣言.
>>> Catalog(locale='en').plural_forms 'nplurals=2; plural=(n != 1)' >>> Catalog(locale='pt_BR').plural_forms 'nplurals=2; plural=(n > 1)'
- タイプ
str
-
update
(template, no_fuzzy_matching=False, update_header_comment=False, keep_user_comments=True)¶ 与えられたテンプレートディレクトリに従ってディレクトリを更新する.
>>> from babel.messages import Catalog >>> template = Catalog() >>> template.add('green', locations=[('main.py', 99)]) <Message ...> >>> template.add('blue', locations=[('main.py', 100)]) <Message ...> >>> template.add(('salad', 'salads'), locations=[('util.py', 42)]) <Message ...> >>> catalog = Catalog(locale='de_DE') >>> catalog.add('blue', u'blau', locations=[('main.py', 98)]) <Message ...> >>> catalog.add('head', u'Kopf', locations=[('util.py', 33)]) <Message ...> >>> catalog.add(('salad', 'salads'), (u'Salat', u'Salate'), ... locations=[('util.py', 38)]) <Message ...>
>>> catalog.update(template) >>> len(catalog) 3
>>> msg1 = catalog['green'] >>> msg1.string >>> msg1.locations [('main.py', 99)]
>>> msg2 = catalog['blue'] >>> msg2.string u'blau' >>> msg2.locations [('main.py', 100)]
>>> msg3 = catalog['salad'] >>> msg3.string (u'Salat', u'Salate') >>> msg3.locations [('util.py', 42)]
ディレクトリ内ではあるがテンプレート内にないメールはマスタグループから除去されるが,依然として通過可能である. obsolete メンバー:
>>> 'head' in catalog False >>> list(catalog.obsolete.values()) [<Message 'head' (flags: [])>]
- パラメータ
template -- 参照ディレクトリは、通常POTファイルから読みます
no_fuzzy_matching -- メッセージIDの曖昧な一致を使用するかどうか
-
メッセージ¶
-
class
babel.messages.catalog.
Message
(id, string='', locations=(), flags=(), auto_comments=(), user_comments=(), previous_id=(), lineno=None, context=None)¶ ディレクトリ中の個々のメッセージの表示形式.
-
check
(catalog=None)¶ メールに対して各種検証チェックを実行します。ディレクトリが提供された場合にのみいくつかの検証が実行される.この方法はシーケンスを返します TranslationError 物体です。
- 戻り値の型
iterator
- パラメータ
catalog -- チェッカーに渡されたディレクトリのインスタンス
- 見
Catalog.check ディレクトリ中のすべてのメールに対してチェックを行う方法を取得する.
-
property
fuzzy
¶ 翻訳が曖昧かどうか。
>>> Message('foo').fuzzy False >>> msg = Message('foo', 'foo', flags=['fuzzy']) >>> msg.fuzzy True >>> msg <Message 'foo' (flags: ['fuzzy'])>
- タイプ
bool
-
property
pluralizable
¶ メッセージが複数可能かどうか.
>>> Message('foo').pluralizable False >>> Message(('foo', 'bar')).pluralizable True
- タイプ
bool
-
property
python_format
¶ メッセージにはPythonスタイルのパラメータが含まれていますか。
>>> Message('foo %(name)s bar').python_format True >>> Message(('foo %(name)s', 'foo %(name)s')).python_format True
- タイプ
bool
-