|
翻訳クラスは、元のソースファイル中のメッセージ文字列から
翻訳されたメッセージ文字列への変換を実際に実装しているクラスです。
全ての翻訳クラスが基底クラスとして用いるクラスが
NullTranslations です; このクラスでは独自の特殊な翻訳
クラスを実装するために使うことができる基本的なインタフェースを
以下に NullTranslations のメソッドを示します:
-
オプションのファイルオブジェクト fp を取ります。この引数
は基底クラスでは無視されます。このメソッドは
``保護された (protected)'' インスタンス変数 _info および
_charset を初期化します。これらの変数の値は導出クラスで設定
することができます。同様に _fallback も初期化しますが、
この値は add_fallback で設定されます。その後、
fp が
None でない場合 self._parse(fp) を
呼び出します。
-
基底クラスでは何もしない (no-op) ようになっています。このメソッド
の役割はファイルオブジェクト fp を引数に取り、ファイルからデータを
読み出し、メッセージカタログを初期化することです。サポートされていない
メッセージカタログ形式を使っている場合、その形式を解釈するためには
このメソッドを上書きしなくてはなりません。
-
fallback を現在の翻訳オブジェクトの代替オブジェクトとして追加
します。翻訳オブジェクトが与えられたメッセージに対して翻訳メッセージ
を提供できない場合、この代替オブジェクトに問い合わせることになります。
-
代替オブジェクトが設定されている場合、gettext() を代替オブジェクト
に転送します。そうでない場合、翻訳されたメッセージを返します。
導出クラスで上書きするメソッドです。
-
代替オブジェクトが設定されている場合、lgettext() を代替オブジェクト
に転送します。そうでない場合、翻訳されたメッセージを返します。
導出クラスで上書きするメソッドです。
バージョン 2.4 で 新たに追加 された仕様です。
-
代替オブジェクトが設定されている場合、gettext() を代替オブジェクト
に転送します。そうでない場合、翻訳されたメッセージを Unicode 文字列
で返します。導出クラスで上書きするメソッドです。
| ngettext( |
singular, plural, n) |
-
代替オブジェクトが設定されている場合、ngettext() を代替オブジェクト
に転送します。そうでない場合、翻訳されたメッセージを返します。
導出クラスで上書きするメソッドです。
バージョン 2.3 で 新たに追加 された仕様です。
| lngettext( |
singular, plural, n) |
-
代替オブジェクトが設定されている場合、lngettext() を代替オブジェクト
に転送します。そうでない場合、翻訳されたメッセージを返します。
導出クラスで上書きするメソッドです。
バージョン 2.4 で 新たに追加 された仕様です。
| ungettext( |
singular, plural, n) |
-
代替オブジェクトが設定されている場合、ungettext() を代替オブジェクト
に転送します。そうでない場合、翻訳されたメッセージを Unicode 文字列
で返します。導出クラスで上書きするメソッドです。
バージョン 2.3 で 新たに追加 された仕様です。
-
``protected'' の_info 変数を返します。
-
``protected'' の_charset 変数を返します。
-
翻訳メッセージとして返す文字列のエンコードを決める、
``protected'' の_output_charset 変数を返します。
バージョン 2.4 で 新たに追加 された仕様です。
| set_output_charset( |
charset) |
-
翻訳メッセージとして返す文字列のエンコードを決める、
``protected'' の変数 _output_charset を変更します。
バージョン 2.4 で 新たに追加 された仕様です。
-
unicode フラグが偽の場合、このメソッドは self.gettext()
を組み込み名前空間に組み入れ、"_" と結び付けます。
unicode が真の場合、self.gettext() の代わりに
self.ugettext() を結び付けます。
標準では unicode は偽です。
この方法はアプリケーションで _ 関数を利用できるようにする
ための最も便利な方法ですが、唯一の手段でもあるので注意してください。
この関数はアプリケーション全体、とりわけ組み込み名前空間に影響する
ので、地域化されたモジュールで _ を組み入れることが
できないのです。その代わりに、以下のコード:
import gettext
t = gettext.translation('mymodule', ...)
_ = t.gettext
を使って _ を使えるようにしなければなりません。
この操作は _ をモジュール内だけのグローバル名前空間に
組み入れるので、モジュール内の _ の呼び出しだけに影響
します。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。
|