IT翻訳 Nobuyuki の仕事部屋

ボランティアでソフトウエアーローカライズのために翻訳をしている。

Mozilla DOM Hacking Guide: Introduction to XPCOM14

2006-01-23 23:39:43 | InDraft
昨日の女房との会話:
”2、3年で自動販売機でのタバコの購入が制限されるそうよ。ID カードのようなものがないとタバコが買えなくなるみたい”

むしろいままで、そうでなかったのが遅すぎたように思う。購入の制限が未成年を対象としていることは間違いない。もちろんそれが、万全の対策にならないのはしょうがないが、ある程度の効果は期待できるかもしれない。

昔私の通っていた私大の学食での光景を思い出す。近くに付属高校があるのでそこの生徒が利用に来ていた。彼らの中には、食堂で堂々と喫煙する者も少なくはなかった。しかし誰も注意しない。教師もおそらく知っていたのだろうが見てみぬふりであった。地方の公立高校出身の私にとってそれは異様な風景だった。当時、私の卒業した高校で生徒の喫煙が見つかると、退学と言わないまでも停学になるのがふつうだったから。女房も高校時代まわりで喫煙する同級生はいなかったという。上の話を聞かせると、東京は進んでいたのね、と言った。彼女は関西出身である。

しかし今の時代、高校生の喫煙や飲酒はどうも日常的になっているようだ。長女の通っていた学校でも、部室や寮でのそれは公然の秘密だったという。そして大学に入り、新入生歓迎会での飲酒へと続く。法律違反ということで、ホリエモンとどこが違う?有名人であれば、責められるが、一般人の違法行為は”公然の秘密”ということなのかな(・_・?。まあスケールは違いますけどね。
---------------------------------------------------------------

原文:  青色表示
訳文:  黒色表示
注記/訂正: 赤色表示

Let's take a closer look at how interfaces are implemented. We already know that an interface has to be implemented by a concrete C++ class. This class can implement multiple interfaces, directly or through inheritance (see the next section for a discussion of inheritance). We also saw that an interface defined in XPIDL contains methods and attributes, which are transformed into C++ functions by the XPIDL compiler. The class that implements the interface has to explicitly implement each method and implement the setter and the getter of each attribute defined on the interface. If the attribute is read-only, only a getter is necessary, of course.

インターフェイスの実装方法を詳細に観てみましょう。 C++ の具象クラスよってインターフェイスが実装されなければならないことをすでに知っています。このクラスは複数のインターフェイスを直接または継承によって実装できます(継承の議論は次の節を参照してください)。また私たちは XPIDL で定義されたインターフェイスがメソッドと属性を保持し、これらは XPIDL コンパイラによって C++ の関数に変換されることも知りました。インターフェイスを実装するクラスは明示的に、インターフェイスで定義された各メソッドを実装し、各属性の setter と getter 実装しなければなりません。もし属性が read-only であればもちろん getter だけが必要になります。

I have chosen to implement nsIDOMFabian in the nsHTMLDocument class, which is defined in nsHTMLDocument.h. There are three things to do: modify the class declaration, the class body, then code the functions declared on the interface.

nsHTMLDocument.h で定義されている nsHTMLDocument クラスに nsIDOMFabian を実装することにしました。すべきことが 3 つあります: クラスの宣言を変更すること、クラスの本体を変更すること、インターフェイスで宣言された関数をコード化することです。

コーディングは、明日にする。
To be continued tomorrow!