"B.インターフェイス"の節を続けて和訳します。
原文: 青色表示
訳文: 黒色表示
注記: 赤色表示
An interface is thus simply a C++ class where all the member functions are declared as pure virtual functions. An interface can also be defined using XPIDL. This is described in Section 1.E, "How to add an interface".
インターフェイスはこのようにすべてのメンバ関数が純粋に仮想関数として宣言される、単に C++ のクラスです。インターフェイスはまた XPIDL を使って定義されます。この件は、 1.E の節”新インターフェイスの追加方法”で解説されます。
Since an interface doesn't have any implementation, it has to be implemented by a non-abstract class -- a concrete class. If the interface is called nsIFoo and the class is called nsFoo, we say that "nsFoo implements nsIFoo", or that "nsFoo inherits from nsIFoo". The C++ code is the following:
class nsFoo : public nsIFoo
インターフェイスは実装を備えていないので、非抽象クラス(具体的クラス)によって実装される必要があります。その際、インターフェイスが nsIFoo と呼ばれるならば、クラスは nsFoo と呼ばれます。その時、"nsFoo は nsIFoo を実装する"とか"nsFoo は nsIFoo を継承する"と言います。C++ のコードは次のようになります:
class nsFoo : public nsIFoo
For those unfamiliar with object-oriented C++, this means that nsFoo is declared as "derived from" nsIFoo, and that nsIFoo is a "base class" of nsFoo. For this introduction you don't need to know more about object-oriented C++. However the Section 1.F provides a more detailed discussion about it, and is necessary to understand most of the DOM code.
オブジェクト指向の C++ を知らない人のために言うと、nsFoo は nsIFoo からの”派生”として宣言されることになります。そしてこの時、nsIFoo は nsFoo の”基底クラス”になります。この入門書では、オブジェクト指向の C++ についてもっと多くを知る必要はありません。しかし、1.F 節ではその件でさらに詳しい議論があり、DOM コードのほとんどを理解することが必要になります。
An instance of a class (called an object) can be allocated dynamically (on the heap, or free store), using the syntax
nsFoo *fooptr = new nsFoo;
(オブジェクト)と呼ばれるクラスのインスタンスは(ヒープや空き領域に)、下記の構文を使って動的に割り付けられます
nsFoo *fooptr = new nsFoo;
(^-^)/~~~~
原文: 青色表示
訳文: 黒色表示
注記: 赤色表示
An interface is thus simply a C++ class where all the member functions are declared as pure virtual functions. An interface can also be defined using XPIDL. This is described in Section 1.E, "How to add an interface".
インターフェイスはこのようにすべてのメンバ関数が純粋に仮想関数として宣言される、単に C++ のクラスです。インターフェイスはまた XPIDL を使って定義されます。この件は、 1.E の節”新インターフェイスの追加方法”で解説されます。
Since an interface doesn't have any implementation, it has to be implemented by a non-abstract class -- a concrete class. If the interface is called nsIFoo and the class is called nsFoo, we say that "nsFoo implements nsIFoo", or that "nsFoo inherits from nsIFoo". The C++ code is the following:
class nsFoo : public nsIFoo
インターフェイスは実装を備えていないので、非抽象クラス(具体的クラス)によって実装される必要があります。その際、インターフェイスが nsIFoo と呼ばれるならば、クラスは nsFoo と呼ばれます。その時、"nsFoo は nsIFoo を実装する"とか"nsFoo は nsIFoo を継承する"と言います。C++ のコードは次のようになります:
class nsFoo : public nsIFoo
For those unfamiliar with object-oriented C++, this means that nsFoo is declared as "derived from" nsIFoo, and that nsIFoo is a "base class" of nsFoo. For this introduction you don't need to know more about object-oriented C++. However the Section 1.F provides a more detailed discussion about it, and is necessary to understand most of the DOM code.
オブジェクト指向の C++ を知らない人のために言うと、nsFoo は nsIFoo からの”派生”として宣言されることになります。そしてこの時、nsIFoo は nsFoo の”基底クラス”になります。この入門書では、オブジェクト指向の C++ についてもっと多くを知る必要はありません。しかし、1.F 節ではその件でさらに詳しい議論があり、DOM コードのほとんどを理解することが必要になります。
An instance of a class (called an object) can be allocated dynamically (on the heap, or free store), using the syntax
nsFoo *fooptr = new nsFoo;
(オブジェクト)と呼ばれるクラスのインスタンスは(ヒープや空き領域に)、下記の構文を使って動的に割り付けられます
nsFoo *fooptr = new nsFoo;
(^-^)/~~~~
確かに専門用語として、”具象クラス”と言うようです。”具体的クラス”は直訳でした。(^_^ゞ
IBM 情報処理用語英和対訳集
http://www-6.ibm.com/jp/manuals/nlsdic/nlsdic.jsp#
これは technical term かな?と思い、IBM の辞書を参照してみて、助けられたことがあります。ご参考になれば・・・
ご紹介いただきましたサイトはいつも活用させていただいています。その他、もろもろのオンラインサイトを使って、作業をしています。
本当に便利な世の中になりました(などというといかにも年寄りくさい口調になりますが(^-^;)。紙の資料を使って翻訳していたころと比較すると隔世の感があります。
Mozilla の文書にしても、up-to-date に新しい情報を取り込んで、レビジョンアップして行きます。
話が飛躍しますが、情報の変化が激しい世界では、紙に印刷された情報はどんどん陳腐化するので、あまり意味がないですね。そういう意味で、常にレビジョンアップした文書を参照できる、インターネットはすごいなと思います。翻訳のレビジョンアップも大変な作業ですがね(^-^;。
原文:
If the interface is called nsIFoo and the class is called nsFoo, we say that "nsFoo implements nsIFoo", or that "nsFoo inherits from nsIFoo".
訳文:
その際、インターフェイスが nsIFoo と呼ばれるならば、クラスは nsFoo と呼ばれます。その時、"nsFoo は nsIFoo を実装する"とか"nsFoo は nsIFoo を継承する"と言います
callの意味が取れていません。
改訳:
インターフェイスが nsIFoo、クラスが nsFoo である場合、「nsFoo は nsIFoo を実装する」、あるいは「nsFoo は nsIFoo を継承する」と言います。
ご指摘ありがとうございした。
call は "give name to "と"describe"の意味があり、ここでは名づけることを言っていないので、ご提案いただいたように訳すべきですね。
また、can は可能性を明示的に訳して冗長な日本語になる場合あえて、訳さないようにしています。