IT翻訳 Nobuyuki の仕事部屋

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

JavaScript-DOM Prototypes in Mozilla 草稿化 1

2006-03-12 23:37:52 | InDraft
三月になり我が家の小さな花壇にチューリップの芽が出てくると、春が曲がり角の手前まで来ていることが予感されます。近頃は運動不足で、仕事場に篭ってクラッシク音楽を聴いてばかりいると、体重の増加ばかりが気になります。

夜夫婦で歩いている人たちをよく見かけますが、私たちも歩こうねと家内と話をしながらなかなか実現せずに、とうとう花粉症の季節となりました。すると、ますます屋外を歩くのが億劫になります。結局摂取した栄養分を燃焼できないまま、夫婦とも係数でいうと肥満の領域の側に足をふみいれました。(・_・、
-----------------------------------------------------------------------------

リンクをたどって DOM 周辺の文書を漁っているうちに、タイトルの文書が和訳されていないようなので、早速 Mozilla Japan 和訳部門のフォーラムに予約宣言をし、そそくさと和訳を開始しました。

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


JavaScript-DOM Prototypes in Mozilla
Prototype setup on an XPConnect wrapped DOM node in Mozilla

When a DOM node is accessed from JS in Mozilla, the native C++ DOM node is wrapped using XPConnect and the wrapper is exposed to JS as the JS representation of the DOM node. When XPConnect wraps a C++ object it will create a JSObject that is unique to this C++ object. In the case where the C++ object has class info (nsIClassInfo), the JSObject is a more or less empty JSObject which is not really that special. All the methods that are supposed to show up on this JSObject are actually not properties of the object itself, but rather properties of the prototype of the JSObject for the wrapper (unless the C++ object's class info has the flag nsIXPCScriptable::DONT_SHARE_PROTOTYPE set, but lets assume that's not the case here). As an example of this let's look at an HTML image element in a document.

var obj = document.images[0];



Mozilla における JavaScript-DOM プロトタイプ
Mozilla で XPConnect によりラップされた DOM ノードに設定されたプロトタイプ

DOM ノードが Mozilla の JS(ジャバスクリプト) からアクセスされる時、ネイティブの C++ の DOM ノードは XPConnect を使ってラップされます。ラッパーは DOM ノードの JS の代理として JS へ示されます。XPConnect が C++ オブジェクトをラップする時、XPConnect はこの C++ オブジェクトへ一意の JSObject を生成します。この時 C++ オブジェクトが class info (nsIClassInfo) を備えていると、JSObject は大体、実際はそれほど特殊でない空の JSObject です。この JSObject に現れることになるすべてのメソッドは、実のところオブジェクトそのもののプロパティでなく、ラッパーに対する JSObject のプロトタイプののプロパティです(その時 C++ オブジェクトが nsIXPCScriptable::DONT_SHARE_PROTOTYPE のセットを備えていなければですが、ここでは、備えてないとします)。この例としてドキュメントの HTML イメージ要素を見てみましょう。

var obj = document.images[0];



4 コメント

コメント日が  古い順  |   新しい順
Unknown (kozawa)
2006-03-14 00:14:21
この例としてドキュメントの HTML イメージ要素を見てみましょう。

「a document」の感覚が出ているとよいかもです。「HTML イメージ要素」で一語に見えるのも改善余地あるかもです。
返信する
ちょっと変えて (Nobuyuki)
2006-03-15 00:51:35
それでは、



この例としてドキュメントの HTML イメージ要素を見てみましょう。→



この例として、ひとつのドキュメントにおけるHTML のイメージ要素を見てみましょう。



てなのはどうでしょうか?
返信する
Unknown (kozawa)
2006-03-16 01:14:09
「ひとつのドキュメントにおける」このaは単数の意味もあるのですが、「不定冠詞」ですので、たとえば「あるドキュメント」という訳語があたる場合もあるかと思います。ここでは「あるドキュメントを例にとって」というニュアンスでしょうか。
返信する
不定冠詞 a (Nobuyuki)
2006-03-16 23:46:30
Kozawa さん

ご返信ありがとうございます。



そうですね、「あるドキュメント」もしくはただの「ドキュメント」でもいいでしょう。

ところで、「ひとつのドキュメント」とあえて訳してみたのは、後の段落に登場する"If |img1| comes from one document and |img2| comes from another document then the above is not true, both protos would look identical, but they'd be two different JSObject's."という記述を意識してみたからです。深読みしすぎかもしれませんが。(^^ゞ
返信する