6.27.2.1 NullTranslations クラス

翻訳クラスは、元のソースファイル中のメッセージ文字列から 翻訳されたメッセージ文字列への変換を実際に実装しているクラスです。 全ての翻訳クラスが基底クラスとして用いるクラスが NullTranslations です; このクラスでは独自の特殊な翻訳 クラスを実装するために使うことができる基本的なインタフェースを 以下に NullTranslations のメソッドを示します:

__init__( [fp])
オプションのファイルオブジェクト fp を取ります。この引数 は基底クラスでは無視されます。このメソッドは ``保護された (protected)'' インスタンス変数 _info および _charset を初期化します。これらの変数の値は導出クラスで設定 することができます。同様に _fallback も初期化しますが、 この値は add_fallback で設定されます。その後、 fpNone でない場合 self._parse(fp) を 呼び出します。

_parse( fp)
基底クラスでは何もしない (no-op) ようになっています。このメソッド の役割はファイルオブジェクト fp を引数に取り、ファイルからデータを 読み出し、メッセージカタログを初期化することです。サポートされていない メッセージカタログ形式を使っている場合、その形式を解釈するためには このメソッドを上書きしなくてはなりません。

add_fallback( fallback)
fallback を現在の翻訳オブジェクトの代替オブジェクトとして追加 します。翻訳オブジェクトが与えられたメッセージに対して翻訳メッセージ を提供できない場合、この代替オブジェクトに問い合わせることになります。

gettext( message)
代替オブジェクトが設定されている場合、gettext を代替オブジェクト に転送します。そうでない場合、翻訳されたメッセージを返します。 導出クラスで上書きするメソッドです。

ugettext( message)
代替オブジェクトが設定されている場合、gettext を代替オブジェクト に転送します。そうでない場合、翻訳されたメッセージを Unicode 文字列 で返します。導出クラスで上書きするメソッドです。

ngettext( singular, plural, n)
代替オブジェクトが設定されている場合、ngettext を代替オブジェクト に転送します。そうでない場合、翻訳されたメッセージを返します。 導出クラスで上書きするメソッドです。 バージョン2.3 以降で新規追加された 仕様です。

ungettext( singular, plural, n)
代替オブジェクトが設定されている場合、ungettext を代替オブジェクト に転送します。そうでない場合、翻訳されたメッセージを Unicode 文字列 で返します。導出クラスで上書きするメソッドです。 バージョン2.3 以降で新規追加された 仕様です。

info( )
``保護されている'' _info 変数を返します。

charset( )
``保護されている'' _charset 変数を返します。

install( [unicode])
unicode フラグが偽の場合、このメソッドは self.gettext() を組み込み名前空間に組み入れ、"_" と結び付けます。 unicode が真の場合、self.gettext() の代わりに self.ugettext() を結び付けます。 標準では unicode は偽です。

この方法はアプリケーションで _ 関数を利用できるようにする ための最も便利な方法ですが、唯一の手段でもあるので注意してください。 この関数はアプリケーション全体、とりわけ組み込み名前空間に影響する ので、地域化されたモジュールで _ を組み入れることが できないのです。その代わりに、以下のコード:

import gettext
t = gettext.translation('mymodule', ...)
_ = t.gettext

を使って _ を使えるようにしなければなりません。

この操作は _ をモジュール内だけのグローバル名前空間に 組み入れるので、モジュール内の _ の呼び出しだけに影響 します。

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。