低レベル抽出インタフェース

下位抽出インタフェースは,ディレクトリやファイルから直接抽出するために用いることができる.普通これは必要ありません。コマンドツールはあなたにこれをすることができますから。

抽出関数

抽出関数は,命令行ツールが内部で文字列を抽出するための関数である.

babel.messages.extract.extract_from_dir(dirname=None, method_map=[('**.py', 'python')], options_map=None, keywords={'N_': None, '_': None, 'dgettext': (2), 'dngettext': (2, 3), 'gettext': None, 'ngettext': (1, 2), 'npgettext': ((1, 'c'), 2, 3), 'pgettext': ((1, 'c'), 2), 'ugettext': None, 'ungettext': (1, 2)}, comment_tags=(), callback=None, strip_comment_tags=False)

与えられたディレクトリから見つかった任意のソースファイルからメールを抽出する.

この関数はフォームのタプルを生成する (filename, lineno, message, comments, context) それがそうです。

各ファイルがどのような解凍方法を使用するかは method_map 拡張グローバルパターンを抽出方法名にマッピングするパラメータ。例えば、以下はデフォルトマッピングである:

>>> method_map = [
...     ('**.py', 'python')
... ]

これは,基本的には,ディレクトリ内の任意のレベルのファイル拡張子“.py”のファイルは“python”抽出方法で処理されるべきである.どのマッピングパターンにも一致しないファイルは無視されるだろう。ご参照ください pathmatch 関数はパターン文法に関する詳細な情報を取得する.

以下の拡張マッピングでは、“Templates”サブディレクトリの任意のファイルに対して“genshi”抽出方法を使用します。

>>> method_map = [
...     ('**/templates/**.*', 'genshi'),
...     ('**.py', 'python')
... ]

選択可能な options_map パラメータはこれらのマッピングを増加させる.これは,キーとして拡張グローバルパターンを用い,値はオプション名をタブ値(2文字列)にマッピングした辞書である.

地球表面の球状模様 options_map 必ずしもメソッドマッピングで用いられているものと同じである必要はない.例えば例えば templates アプリケーション内のフォルダはGenshiアプリケーションである可能性があり、これらのファイルのオプションは拡張子によって異なる場合があります。

>>> options_map = {
...     '**/templates/**.txt': {
...         'template_class': 'genshi.template:TextTemplate',
...         'encoding': 'latin-1'
...     },
...     '**/templates/**.html': {
...         'include_attrs': ''
...     }
... }
パラメータ
  • dirname -- the path to the directory to extract messages from. If not given the current working directory is used.

  • method_map -- 1部の名簿. (pattern, method) 抽出方法名を拡張グローバル·モードのタプルにマッピングする

  • options_map -- オプション辞書(オプション)

  • keywords -- キーワード(すなわち、翻訳関数として識別されるべき関数名)を、そのパラメータに局所化可能な文字列を含むタプルを指定する辞書にマッピングする

  • comment_tags -- 検索して結果に含まれる翻訳者の注釈のタグリスト

  • callback -- 抽出自体を実行する前に、そこからメッセージの各ファイルを抽出するための関数を呼び出し、ファイル名、抽出方法の名前、およびオプション辞書を順に位置パラメータとして関数に渡す。

  • strip_comment_tags -- もし設定が True これにより,収集した備考からすべての備考ラベルが削除される.

pathmatch

babel.messages.extract.extract_from_file(method, filename, keywords={'N_': None, '_': None, 'dgettext': (2), 'dngettext': (2, 3), 'gettext': None, 'ngettext': (1, 2), 'npgettext': ((1, 'c'), 2, 3), 'pgettext': ((1, 'c'), 2), 'ugettext': None, 'ungettext': (1, 2)}, comment_tags=(), options=None, strip_comment_tags=False)

特定のファイルからメールを抽出する。

この関数は、以下の形式のタプルリストを返します。 (lineno, message, comments, context) それがそうです。

パラメータ
  • filename -- その中からメッセージのファイルの経路を抽出する.

  • method -- 抽出方法を指定する文字列(例えば“ニシキヘビ”)

  • keywords -- キーワード(すなわち、翻訳関数として識別されるべき関数名)を、そのパラメータに局所化可能な文字列を含むタプルを指定する辞書にマッピングする

  • comment_tags -- 検索して結果に含まれるトランスレータタグリスト

  • strip_comment_tags -- もし設定が True これにより,収集した備考からすべての備考ラベルが削除される.

  • options -- オプション辞書(オプション)

戻り値

フォームのタプルリスト (lineno, message, comments, context)

戻り値の型

list[tuple[int, str|tuple[str], list[str], str|None]

babel.messages.extract.extract(method, fileobj, keywords={'N_': None, '_': None, 'dgettext': (2), 'dngettext': (2, 3), 'gettext': None, 'ngettext': (1, 2), 'npgettext': ((1, 'c'), 2, 3), 'pgettext': ((1, 'c'), 2), 'ugettext': None, 'ungettext': (1, 2)}, comment_tags=(), options=None, strip_comment_tags=False)

指定された抽出方法を用いて与えられた類似ファイルのオブジェクトからメッセージを抽出する.

この関数はフォームのタプルに戻ります (lineno, message, comments, context) それがそうです。

属性の値は,実際にプラグインに割り当てられた値を抽出する. method パラメータ

>>> source = b'''# foo module
... def run(argv):
...    print(_('Hello, world!'))
... '''
>>> from babel._compat import BytesIO
>>> for message in extract('python', BytesIO(source)):
...     print(message)
(3, u'Hello, world!', [], None)
パラメータ
  • method -- 抽出方法(呼び出し可能)または抽出方法を指定する文字列(例えば、Python“);これが簡単な名前である場合、抽出関数は入口点で検索され、関数への明示的な参照である場合(フォーマットは package.module:funcname あるいは…。 package.module.funcname )は、対応する機能を導入して使用します

  • fileobj -- その中からメッセージを抽出すべき類似ファイルのオブジェクト

  • keywords -- キーワード(すなわち、翻訳関数として識別されるべき関数名)を、そのパラメータに局所化可能な文字列を含むタプルを指定する辞書にマッピングする

  • comment_tags -- 検索して結果に含まれるトランスレータタグリスト

  • options -- オプション辞書(オプション)

  • strip_comment_tags -- もし設定が True これにより,収集した備考からすべての備考ラベルが削除される.

例外

ValueError -- 抽出方法が登録されていなければ

戻り値

フォームのタプルの反復可能 (lineno, message, comments, context)

戻り値の型

Iterable[tuple[int, str|tuple[str], list[str], str|None]

言語分析

言語解析関数は,ソースファイルから文字列を抽出するために用いられる.抽出関数はこれらの関数を自動的に使用するが,ラッパ関数を登録することが有用である場合があり,これらの下位関数を呼び出すことができる.

Setuptools入口ポイントシステムで新しい機能を登録することができます。

babel.messages.extract.extract_python(fileobj, keywords, comment_tags, options)

Pythonソースコードからメッセージを抽出します。

これは、以下の形態のタプルを生成する反復器に戻る。 (lineno, funcname, message, comments) それがそうです。

パラメータ
  • fileobj -- メッセージを抽出すべき検索可能な類似ファイルのオブジェクト

  • keywords -- 翻訳関数として識別すべきキーワード(すなわち,関数名)リスト

  • comment_tags -- 検索して結果に含まれるトランスレータタグリスト

  • options -- オプション辞書(オプション)

戻り値の型

iterator

babel.messages.extract.extract_javascript(fileobj, keywords, comment_tags, options)

JavaScriptソースコードからメッセージを抽出する.

パラメータ
  • fileobj -- メッセージを抽出すべき検索可能な類似ファイルのオブジェクト

  • keywords -- 翻訳関数として識別すべきキーワード(すなわち,関数名)リスト

  • comment_tags -- 検索して結果に含まれるトランスレータタグリスト

  • options -- 追加オプション辞書(オプション)でサポートされるオプションは、 * jsx -- set to false to disable JSX/E4X support. * template_string --Falseに設定すると、ES 6テンプレート文字列サポートを無効にします。

babel.messages.extract.extract_nothing(fileobj, keywords, comment_tags, options)

実際にコンテンツを抽出するのではなく、空リストを返す擬似抽出部のみである。