トップページ⇒tech
1001コメント388KB

Mozillaでプログラミング(XUL)

■ このスレッドは過去ログ倉庫に格納されています
0001MozillerNGNG
ム板住人のうちMozilla使ってる人は何%くらいかわかりませんが、
Mozilla 1.0 RC1がリリースされ、
XUL 1.0の仕様が一応フリーズしました。
なので、そろそろXULアプリケーションも出始めることでしょうし(希望的観測)
MozillaでのXULプログラミングについて騙りませんか。

Mozillaスレッド M10
http://pc.2ch.net/test/read.cgi/software/1019550671/
0286デフォルトの名無しさんNGNG
>>285
隊長、findbar発見しました!
ttp://rh.vinelinux.org/~shom/moz/
0287超ぉ〜AnneNGNG
>>283
まさか利用者がいるとは思っていなかったっす(w
どうもご利用ありがとうございます。ヘタレなブツでスマソ
なんでしたらテンポラリなメアドでも教えて頂ければお送り致しますが・・・

navigatorOverlay.xul は overlayinfo にも書いてあるし、comm.jar にも入ってる
んですが、もしかして使われてないんですか!?
それならproxybarも呼ばれないの納得ですわ・・・
さてどーすべぇか・・・

>>286
そんなのもあるんですね。
名前が被るとどーなるか分からないんで恐くてインストールしてないんですが、
ソース見た感じではツールバーで同じ事してるっぽいですね。
個人的にはステータスバー派なのですけど、>>283 氏も別にステータスバーに
こだわらなければこちらでもよろしいのではないかと。

0288超ぉ〜AnneNGNG
ttp://www26.tok2.com/home/toshiki/
昔取ったまま何も使ってなかった垢発見しますた(藁
とりあえず再利用ってことでここに置いておきます。
よろしければどーぞ。
0289デフォルトの名無しさんNGNG
>>287
まぁ、Phoenixはnavigatorのコードを全部捨てて(XULレイヤで)ゼロから作り直してるわけですから、navigator用のアドオンは全滅と考えておいた方がいいかもしれません。
0290デフォルトの名無しさんNGNG
XUL Planet リニューアル sage!
http://www.xulplanet.com/
Preferences Toolbar も大幅アップデート!
http://www.xulplanet.com/downloads/prefbar/

・・・でも、腰を据えて弄りまわす時間的余裕が無い・・・。
0291超ぉ〜AnneNGNG
ちょちょいとbrowser.xul@phoenix見てみたんだけどどーもoverlayさせない勢
いのコードっぽいですなぁ。しょーがないから自分用browser.xulに書き変えてちまったぃ。
これで快適じゃ…ってアップデートするたんびにこんなことするのメンドクセェな…
0292デフォルトの名無しさんNGNG
>>284
> ちょいとディレクトリ掘ってみたけど見当たらず・・・

間違えて、1.0rc1のsource読んでた…
見つからなかった時のdialog windowがウザイので、
./xpfe/communicator/resources/content/findUtils.jsの
> gPromptService.alert(window, gFindBundle.getString("notFoundTitle"), gFindBundle.getString("notFoundWarning"));
を何とかしようと思っている。
0293デフォルトの名無しさんNGNG
[email protected]
メールボムかも〜ん
0294デフォルトの名無しさんNGNG
>>293
通報しました
0295デフォルトの名無しさんNGNG
MozDev のダウンロードミラー
http://downloads.mozdev.org/
0296デフォルトの名無しさんNGNG
               「 ̄ ̄了 ハイハイ!
              l h「¬| どいてどいてぇ〜。
       / ̄ ̄\__,ト、々/____
     /   /-∧i. /  jテ、      f ̄ヨ
    /   ./293) /  / /.il iー――‐u' ̄
   ./   /ー'' / /  / / l l
   i'  /   l ヽ../  レ'  l l
.  /  _/ \  !、 lヽ____」 l
.  !、/ \. \ \lN =口= ト./
   ト、__\/ト、/ト、  y   l
   l    ̄(  )y )  /l   i
   l   l   Y''/ー'  / .l   l
   !、  l  l./   /  l   l
   /  /  l/   ,/  i'    l
  /_  ./l   l`ー‐〈   ト.__」
  L_``^yト._」、ー"   `ヽ_」
   `ー' `ヽ_」
0297デフォルトの名無しさんNGNG
Mozilla雑誌の掲載されていたね〜
0298 ◆Moz2cH0k NGNG
Creating Applications with Mozilla
がOpen Public Licenseで読めるようになってるみたいなので
参考にするひとはどぞー

http://books.mozdev.org/index.html
0299デフォルトの名無しさんNGNG
Phoenixスレより転載。

Mozilla の アドオンを Phoenix でも動作させる
http://ryuzi.dyndns.org/mozillazine/view.php?articlenum=2524
http://www.mozillazine.org/weblogs/hyatt/extensions.html

非常にあっさり。
0300デフォルトの名無しさんNGNG
ミ・д・ミ
0301デフォルトの名無しさんNGNG
Mozillaに関係ない自アプリから複数URLをNavigatorに送って、
それらを全て(将来的にはボタン押下毎にURLを上から5つ程度)
新規タブで開くという機能を追加したいのだけれど
実現方法に悩んでいます。できればアドバイスください。

XULを使用してMozillaと関係ないアプリと通信する方法はあるでしょか。
あるいは他の選択肢を選んだ方がいいでしょか。思い付いたのは↓3つ
・DDEのWWW_OpenURL→既存ウィンドウの選択中タブに表示される
・XUL→XPCOMはMSのCOMとはどうも別物っぽい(?)
・SideBar→実態はHTMLらしいので自分で更新して実現できる、か?

#スレ違いだったらスンマセン
0302デフォルトの名無しさんNGNG
>>301
window.argumentsで引数が取得できますから、
navigatorではない別のダミーの(ウィンドウを生成しないような)XULアプリを経由してメッセージを送るとか、そんなのは駄目でしょうか。駄目ですね。
0303301NGNG
>>302
引数が読めますか。URLを列挙したファイル名あたりを送れば
実現できそうな気配。チョイ探ってみます サンクス
0304デフォルトの名無しさんNGNG
>>303
実際やるなら、流れとしてはこんな感じでしょうか。
NativeApps > "mozilla.exe -chrome chrome://receiver/content/ %1" で、
receiver.xulの中で

var windowManager = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator);
var nav = windowManager.getMostRecentWindow("navigator:browser");
if (nav) nav.getBrowser.addTab(window.arguments[0]);
else window.open(window.arguments[0]);
window.close();

みたいな。

ちなみに、最近のNavigatorは'\n'区切りのURLのリストを渡すと全てタブで開くようになってます。
0305訂正NGNG
getBrowser > getBrowser()
0306301NGNG
>>304 「'\n'区切りのURLのリストを渡すと〜」
なんと!!多謝。試してみま。
つか、XUL結構勝手が違うんで難儀してたあるよ。
0307デフォルトの名無しさんNGNG
>>306
念のため書いとくと、Navigator起動時の引数の話ね。
0308デフォルトの名無しさんNGNG
応用したら開いてるURLをGETしてIEで開くボタンとか作れそうですねえ。
マルチプラットフォームには難しいか。
あ、最初に他のブラウザを登録させればいいのかな。
このくらいならステータスバーでも邪魔にならないでよさそう。
問題は作り方がぜんぜんわかんないことなんだけどね。

|_・) 物欲しげな目でちらっ
0309デフォルトの名無しさんNGNG
xulやjsでetagsが使えれば・・・
0310デフォルトの名無しさんNGNG
>>308
ContextMenu-Extensionsからパクればよいのでは
0311デフォルトの名無しさんNGNG
>>310
その手が、って開いてみたけど・・・。
チュートリアルからやり直してみる。
0312デフォルトの名無しさんNGNG
ちょっとしたツールならXUL使った方が簡単かもしれませんが、
2chブラウザを作るとなると全部JavaScriptってのは逆にしんどくありませんか?
0313301NGNG
>>304 「'\n'区切りのURLのリストを渡すと〜」
1つのURLを開く事はできるんだけど、肝心の2つ以上がちと。
\nという文字列で区切ったりキャラクタコードの10,13,13+10で
区切ったり色々試したけどなんか駄目ですた。
Netscape/7.0@Gecko/20020823 使ってるんですが…
ひょっとして、最新Mozillaじゃないと駄目すか?
0314デフォルトの名無しさんNGNG
>>313
その通りです。
Mozilla1.2b以降の機能です。
0315301NGNG
>>314 センキュす。Mozilla取ってきま。
0316デフォルトの名無しさんNGNG
prefbarにページのソースを表示させるボタンを付けたいのですが
onclickはなんと書けば良いのでしょうか。全然わからない。。。
0317デフォルトの名無しさんNGNG
>>316
getBrowser().addTab("view-source:" + getBrowser().contentDocument.location.href)
こんなんかな
0318デフォルトの名無しさんNGNG
>>317
location.hrefよりgetBrowser().currentURI.specの方がいくない?
気分的にだけど。
0319316NGNG
>>317-318
両方ともいけました!大感謝です。
ありがとうございました〜。
0320デフォルトの名無しさんNGNG
XUL チュートリアル和訳:http://www.janit.com/xml/XUL/

を読もうと思ったら404なんですけど、うちだけでしょうか?
他にチュートリアルの邦訳を提供しているサイトってありますか?
0321デフォルトの名無しさんNGNG
>>320
http://xul-app.hp.infoseek.co.jp/
ここが、「やろうとしている」のは知ってる。
0322320NGNG
>>321
レス有難うございました。404の連続だったので、
例のサイトをWebArchiveで見ることにします。
0323デフォルトの名無しさんNGNG
xulやjsでetagsが使えれば・・・
0324デフォルトの名無しさんNGNG
>>320
http://xul-app.hp.infoseek.co.jp/xultu-janit/
もしかしたらどこか欠けてるかも知れないけど
例のサイトを保存しておいてます。どうぞ
0325デフォルトの名無しさんNGNG
0326デフォルトの名無しさんNGNG
0327デフォルトの名無しさんNGNG
0328デフォルトの名無しさんNGNG
みんなで
http://books.mozdev.org/chapters
を訳しませんか?
0329デフォルトの名無しさんNGNG
Chapter 2
さぁ、はじめよう

君ができるだけ早くアプリを作れるよう、このチャプターでは2つの
"Hello World" の例を示そう。

最初の例はブラウザウィンドウにロードされるシンプルな XUL
ファイルだ。この例はスタイルシートや Java スクリプトの関数を
XUL ファイルに追加することで拡張することができる。
第二の "hello World" の例はどうやってこれらのファイルをパッケ
ージにするかを教えてくれる。これらはモジュールになっていて
Mozilla アプリケーションや新しい Mozilla モジュール
を作るのにぴったりだ。

これらの例は Mozilla アプリの開発について検討するための背景
を提供してくれる.
最初の例は基本的なファイルの作成と編集に焦点をおいている。
第二の例はMozillaアプリの構成と配布に焦点をおいている。
0330デフォルトの名無しさんNGNG
全ての "Hello World" アプリケーションのように、Example 2-1
に XUL の簡単な例を示す。
この小さな例は イベントハンドラの利用やウィンドウ内のレイアウト
のためのボックスなど XUL プログラミングにおけるいくつかの重要
な面を示している。また、この例はファイルフォーマット、ネームス
ペース、XULプログラミングにおける習慣などの言語についての一
般的な。。。を教えてくれる。

エディタを使って Example 2-1 を hello.xul という名前で保存し、
Mozilla で開いてみよう。ブラウザウィンドウの左上角にボタンが
見えるだろう。ボタンをクリックするとアラートボックスが表示される
はずだ
Figure 2-1 に表示されるアラートポップアップウィンドウを示す。

次のいつくかのセクションでこの例について詳細に説明しよう。
ファイルそのものやマークアアプの文法、XUL のネームスペース、
XUL ファイルの基本的なレイアウトについて解説する。
0331デフォルトの名無しさんNGNG
かなり適当&間違いあると思うけど、こんな感じでどうかな?

別スレ立てるかサイト作りたいけど一人で続けるだけの体力がない。
0332デフォルトの名無しさんNGNG
例を和訳してみますた♥

Example 2-1: Hello xFly
<?xml version="1.0"?>
<!-- Sample XUL file -->
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<box align="center">
<button label="hello xFly" onclick="alert('Hello World');" />
</box>
</window>
0333デフォルトの名無しさんNGNG
間違えた。これじゃぁネタにならねぇぢゃん。鬱氏♥

Example 2-1: Hello xFly
<?xml version="1.0"?>
<!-- Sample XUL file -->
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<box align="center">
<button label="hello xFly" onclick="alert('コンニチハ セカイ');" />
</box>
</window>
0334デフォルトの名無しさんNGNG
これが正解か。ってスレ汚しとるだけやがな ♥
例 2-1: コンニチハ xFly
<?xml version="1.0"?>
<!-- Sample XUL file -->
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<box align="center">
<button label="コンニチハ xFly" onclick="alert('コンニチハ セカイ');" />
</box>
</window>
0335もくじNGNG
Mozillaで作るアプリケーション

目次
[chapter 00]: はじめに
[chapter 01]: プラットフォームとしてのMozilla
[chapter 02]: Getting Started
[chapter 03]: XUL要素とその機能
[chapter 04]: MozillaアプリケーションのCSS
[chapter 05]: Mozillaのスクリプト
[chapter 06]: パッケージングとアプリケーションのインストール
[chapter 07]: XBLによるUIの拡張
[chapter 08]: XPCOM
[chapter 09]: XULテンプレート
[chapter 10]: RDF, RDFツール, 内容モデル
[chapter 11]: ローカライズ
[chapter 12]: リモートアプリケーション

[Appendix:A]: Mozillaのソースの入手とビルド
[Appendix:B]: 開発ツール
[Appendix:C]: プログラマのためのリファレンス

[resources] : リソース
[corrections]: 訂正
03360章NGNG
Mozillaで作るアプリケーション

[PREV][TOC][NEXT]
はじめに

MozillaはただのWebブラウザではありません。Cascading Style Sheets (CSS),
XML-based User-interface Language (XUL) や eXtensible Binding Language
(XBL)、Resource Description Framework (RDF)などのXMLアプリケーションなど
の標準技術を用いてクロスプラットフォームなアプリケーションを作成するため
のフレームワークでもあるのです。

MozillaのレンダリングエンジンのGeckoは、XPConnectやXPCOM、Mozillaのコン
ポーネントモデルなどの他の技術とともに、このフレームワークの一つとして働
きます。また、Mozillaの開発環境はJavaScript, C++, C, Python, IDLなどのプ
ログラミング言語も使用します。

Mozillaのフレームワークは、MozillaをベースとするNetscapeのブラウザ
(Netscape 6.xや7.x)、GaleonやChimeraなどの他のブラウザ、ChatZillaや
JabberZillaなどのチャットクライアントにも使われます。また、アプリケーショ
ンの開発者は、Mozillaを開発ツールやブラウザ自体の拡張機能、ゲーム、その
他のアドオンを作るのにも使います。

この本は、Mozillaでどのようにしてアプリケーションを作るのかを説明し、
Mozillaの強力なクロスプラットフォームの開発環境を使ってあなたがプログラム
を作るための手順をステップアップ形式で提供します。また、他の既存のアプリ
をMozillaによる開発の可能性のデモンストレーションのために例として含んでい
ます。
03370章NGNG
Mozillaの背景

Netscape Communications社(以下Netscape社)が設立された時、Netscape社は、
当時インターネットへのアクセス用に一番普及していたNCSA Mosaicよりも、優れ
たブラウザを作ることを計画しました。この新しいアプリは「Mosaicキラー」とな
るものでした。そうこうするうち、このフレーズは「Mozilla」と略されるように
なり、Netscapeのブラウザのコードネームとなりました。

MozillaはNetscapeの製品一つの代名詞となりました。そして1998年3月31日、
http://www.mozilla.org/はNetscapeの次世代のCommunicator 5.0ブラウザ環境を
開発するためのサイトとして発足しました。この時点で、Mozillaはオープンソー
スのプロジェクトとなり、Netscapeでの起源を越え、独立した存在となりました。

NetscapeがCommunicatorのソースコードをオープンソースのコミュニティへ公開し
た時、それは前例のない行為でした。有名なソフトウェア企業で自社の商品のソー
スコードを公開したところは、それまでまったくありませんでした。この時、この
ことは、多くのソフトウェア業界の人々や報道関係者の間で議論を呼びました。

多くの企業が、Netscapeに続いて、彼らの製品をオープンソースコミュニティへ公
開しだしました。サン・マイクロシステムズはhttp://www.openoffice.org/ や
http://www.netbeans.org/などを含むいくつかのプロジェクトに資金援助をしまし
た。アップル社も、新しいOSの核となる部分を、Darwinと呼ばれたオープンソース
のプロジェクト(http://developer.apple.com/darwin/)を元に開発しました。
03380章NGNG

Mozillaのソースコードが公開されて1年後、Netscapeの古参の経営者の一人である
Mike Homerはこんな風にコメントしました。「MozillaはNetscapeよりも大きく、
そしてそれがMozillaの意義です。Mozillaは本質的に、ある一つの商業的な存在に
よって後援される共同のプロジェクトです。mozilla.orgのスタッフの中には
Netscapeの社員の人もいますし、提供されたソースコードは以前はNetscapeが所有
していました。しかし、そのソースコードがいつかそれ自身独り歩きするようにな
るだろうというのは真実です。」

このプロジェクトが始まってから、多くのNetscape(今ではAOL)の社員がその進
歩に協力したのは事実ですが、多くのNetscape社外の人々もこのコミュニティに参
加しました。Mozillaコミュニティは元々のmozilla.orgを超えるものに成長しつつ
あります。また、Mozillaの支持するニュースサイトのhttp://www.mozillazine.org/
や、Mozillaのアプリケーションのプロジェクトを擁するhttp://www.mozdev.org/
など、他の有用な情報を提供するコミュニティも生まれました。

IBM, Red Hat, AcitveState, サン・マイクロシステムズなどの企業もMozillaのコ
ミュニティに協力しています。例えばRed Hatは、それまで彼らのLinuxディストリ
ビューションに含まれていたクローズドソースのNetscape 4.xブラウザ環境に対し
て、オープンソースのソフトウェアの選択肢を与えるために、Mozillaのサポート
を提供しています。AOLも、最新のコンピュサーブのクライアントやAOLのクライア
ントでのMozillaの利用を研究しています。

Mozillaの全ソースコードは、興味を持っている人なら誰でも入手することができ、
それ故にMozillaコミュニティは、バグ報告や修正パッチ、新しい開発者の増加な
どの利益を得ています。Mozillaがオープンソースのソフトウェアとして最初に公
開された時からプロジェクトに関係していた人々とともに、コミュニティに参加し
た新しい人たちや企業が、Mozillaプロジェクトの方向性や成果を形成するのに協力
しました。
03390章NGNG
Mozillaの現状

オープンソースのプロジェクトが発足してから4年後の2002年6月5日、Mozilla
1.0はリリースされました。この本の中の例は、このMozilla 1.0や1.0.x系列の
全てのメンテナンスリリースで動作するように書かれています。

1.0のリリースの後、Mozillaには二つの主な開発系統が作られました。安定して
いて息の長い1.0ブランチは、1.0リリースのコードのバグを修正することを目的
としています。このブランチから定期的に、「バージョン1.0.x」と名付けられた
メンテナンスリリースがリリースされます。全ての1.0.xリリースは元々の1.0リ
リースと完全に互換性があるように(もちろんそれよりもバグは少なく)設計さ
れています。

もう一つの開発のブランチは、Mozilla CVS trunkから作られます。この開発の努
力からの新しいリリースは「1.x」と名付けられ、新機能やアーキテクチャの変更、
あるいは他の付加的なプロジェクトによる発展などを含んでいます。

これらの新しい1.xリリースは、Mozilla 1.0や1.0.xリリース向けに作られたアプ
リケーションと完全な互換性はないかもしれません。しかしmozilla.orgは、将来
の2.0のリリースまでの間、1.xシリーズを通じて、API(XULやXBLの文法も含めて)
をフリーズして互換性を維持することを約束しました。詳しいことは
http://www.mozilla.org/roadmap/mozilla-1.0.htmlを見て下さい。

Mozilla自身流動的な開発のもとにあるため、Mozillaの新バージョンがリリースさ
れた時、このフレームワークに基づいたアプリケーションは何らかの影響を受ける
かもしれません。私達は、みなさんがMozillaの状態についての最新の情報を得ら
れるよう、ロードマップ(http://www.mozilla.org/roadmap.html)を見ることを
お勧めします。

私達はまた、同様に、この本の例を動作させる時にはMozilla 1.0.xを使うことを
お勧めします。そして、Mozillaが期待に応えられるように、最新の1.xリリースを
使うことも推奨します。
0340デフォルトの名無しさんNGNG
以前、ヒマだったので全訳してみるかーなんて思ってやり始めて挫折した、その残骸です。
0章途中までだし。技術情報含まれてないし。役に立ちませんね。
0341デフォルトの名無しさんNGNG
おお、すげぇ。
0342デフォルトの名無しさんNGNG
>>331
に続いてChapter2訳してるけど他にやってるひといるかな?
03430章続き ◆YNS0qIRC9I NGNG
この本が対象とする読者

この本は主に、全く新しいプラットフォームである、Mozillaの提供するフレーム
ワークの探求に興味を持っているプログラマ(と、プログラマを目指す人たち)を
対象にしたものです。しかし、Mozillaベースのクロスプラットフォームのアプリ
ケーションを作る上で、あなたがプロのプログラマである必要はありません。

以降の章で示されるように、Mozillaベースのアプリケーションを作り始める上で
あなたに必要な技術は、CSS, XML, JavaScript といった既に大抵のWebデベロッ
パーによく知られているいくつかの技術の基礎知識だけです。実際、これはMozilla
ベースのアプリケーション開発の大きな利点です。開発における学習曲線はC, C++,
あるいはJavaのような他の選択肢に比べて緩やかです。

あなたのアプリケーションは自動的にクロスプラットフォームなものになるでしょ
う(もちろん、特定のプラットフォーム向けのアプリケーションを作ることもでき
ます)。また、Mozillaを自分のコンピュータで利用しているユーザにとって、イン
ターネット上で簡単にインストールすることができるものになるでしょう。他にこ
んな事のできる開発プラットフォームがあったでしょうか?

03440章続き ◆YNS0qIRC9I NGNG
あなたに必要な技術は > あなたに必要なのは
の方が良かったですね。
03450章続き ◆YNS0qIRC9I NGNG
この本は、読者がJavaScript, CSS, HTML, XMLをある程度のレベルまで身につけて
いるものと想定して書かれています。もしこれらの技術についてまだあまり熟達し
ていないなら、この本を読む上で、それらの技術について専門的に扱っている他の
本を併せて読むといいでしょう。オライリー&アソシエイツの有用な本の中には、
「JavaScript:決定版ガイド」「Cascading Style Sheets:決定版ガイド」「HTML&
DHTML:決定版ガイド」「ラーニングXML」「簡単なXML(第2版)」などがあります。
Mozillaで、あるいはMozillaと一緒に新しい方法で使われる概念と新しい技術が、
それらの本の中で詳細に説明されています。

この本はまた、読者がMozilla 1.0以降をコンピュータにインストールしていて、
テキストエディタあるいはワードプロセッサとともに利用できる状態を想定してい
ます。Mozillaは今やほとんどのパーソナルコンピュータ上で動くので、互換性の
ある(Mozillaが動く)プラットフォームを探すことはそう難しくありません。
Mozillaの詳細なシステム要件については、mozilla.orgのサイトで見つけることが
できます。
0346デフォルトの名無しさんNGNG
よく考えたらそのうちオライリーから日本語訳でそうだ。。。
0347 ◆YNS0qIRC9I NGNG
>>346
あんまりアテにできないと思いますよ。
海の向こうは、よっぽどの売り上げが見込めるようでないと日本語訳出さないって言ってるみたいですし。
0348デフォルトの名無しさんNGNG
技術書によっぽどの売り上げを見込まれてもな〜
0349デフォルトの名無しさんNGNG
赤字が出ない程度の売り上げは必要ですよ。
0350デフォルトの名無しさんNGNG
最初は自分がわかればいいやって感じで
超適当に訳してたけど、◆YNS0qIRC9Iみたいに
ちゃんと訳してみようかな?

ちゃんと訳すとなると自分の語彙力のなさが
露呈するなぁ。。。
0351 ◆YNS0qIRC9I NGNG
>>350
読んで意味が分かればそれでいいんじゃないでしょうか。実際、自分も所々意訳気味ですし。
うまく訳せる人が取り組んでくれていないのだから、うまく訳せなくても自分たちでやるほかないです。残念ですが。
0352デフォルトの名無しさんNGNG
sourceforgeに登録してCVSで管理とか。
0353デフォルトの名無しさんNGNG
まとめサイトは必要かと。
0354352NGNG
帰ってきたけど誰もやってないみたいなので
やってみる。

プロジェクト名は何にしよう?
0355デフォルトの名無しさんNGNG
ズルズル翻訳 XUL document(プ

なんてのどーよ?(w
0356デフォルトの名無しさんNGNG
襟巻蜥蜴邦訳計画

0357デフォルトの名無しさんNGNG
http://sourceforge.jp/projects/zuldoc-ja/
0358358NGNG
第3章
XulエレメントとXULの特徴
XML-based User interface Language(XUL)はアプリケーションのUIをつくるのに必要な部品(widget)
を全て備えている。タブ、入力フィールド(textarea)、ボタン、メニューなどがそうで、
中には、普段は必要性をほとんど感じないようなもの(例えば<stack>や<colorpicker>など)もある。

第2章ではウィンドウや基本的なアプリケーションを作るのに必要なXULエレメントのいくつかを紹介した。
本章は、XULの概観、振るまい、そして一般的な用法を説明する。
包括的な内容ではないが、本性を読めば、独自のXULアプリケーションを
作り始めるための情報としては十分だと言える。
特に、付録CのXULリファレンスと併せ読めば、いっそう理解が深まる。

本章で説明するXULエレメント(メニュー、ボタン、ボックス、ツリーなど)はほとんどのアプリケーションで
で必要である。そして、本章ので使っている例は汎用的である。だから、自分の用途に合わせて、
その例を組み込んだり、カスタマイズしたりできるだろう。この章には多くの情報を詰め込んだから、
アプリケーションを作る際は役に立つ事請け合いである。
0359358NGNG
XULドキュメントオブジェクト

XULファイルで最も重要な部分はドキュメントオブジェクトである。
HTMLと同様に、documentはXULドキュメントそのものの中身を指すオブジェクトであり、
外側を指すウィンドウオブジェクトと対を成すものである。
そしてドキュメントにはメソッドが用意されている。
メソッドは個々のエレメントを取得したり、ドキュメントの構造を操作したり、
スタイルのルールを変更(updating)したりするのに使われる。
0360デフォルトの名無しさんNGNG
翻訳中に水をさすようですまんが

http://66.160.114.10/XPCOM/howto.html
Building and Using XPCOM Components in XUL

XPCOM モジュール作成の説明もある XUL アプリ製作のレシピみたい。
XUL 本の付録にちょうどいいようなドキュメントだなぁ。
0361デフォルトの名無しさんNGNG
sourceforgeの使い方がいまいち分かってないけど、
sourceforgeのアカウント晒してもらえればxuldoc-jaの
プロジェクトに追加しますよ。
0362デフォルトの名無しさんNGNG
CVSより、Wikiの方がみんなで編集できていいかなぁ。。。
0363Name_Not_FoundNGNG
Wiki 微妙に浸透しつつあるな…
0364358NGNG
(訳注:要素や属性という言葉を使わずに、カタカナ語で統一)
ドキュメントオブジェクトにはgetElementById, getElementsByTagName, createElement, createTextNode
といったメソッドが用意されている。これらは、DOMや実ドキュメント(訳注:actual document domは実体がなくても良いので…)
を扱うためのメソッドである。DOMについては第五章においてさらに詳しく取り上げる。

ドキュメントオブジェクトはこれらのメソッドの他にも、ウィンドウのwidthとheight、ポップアップノードのプロパティ、ツールチップノードのプロパティ、ドキュメントエレメント(documentElement)
などを備えている。
なお、ポップアップノードのプロパティは、ポップアップ表示しているエレメント(何がしかの内容(content)を他のものの上に表示するXUL widget)にアクセスするためのものであり、
ツールチップノードのプロパティもツールチップを表示するエレメントにアクセスするためのものである。
そして、ドキュメントエレメント(documentElement)はドキュメント本体にアクセスするためのものである。
0365358NGNG
var docEl = document.documentElement;
var secondLevelNodes = new Array( );
for (var I=0; I<docEl.childNodes.length;I++) {
secondLevelNodes[I] = docEl.childNodes[i];
}
0366358NGNG
あ、まちがえてタブごと消してしまった。
0367デフォルトの名無しさんNGNG
昔読んだ本だとelement=要素、attribute=属性だったけど
最近じゃカタカナ語なのかな?
well-formed、validity とかはどうなんだろ?
0368 ◆YNS0qIRC9I NGNG
content=内容 とするなら、
element=要素
attribute=属性
でいいと思うけど。
0369デフォルトの名無しさんNGNG
ふーむ、例えば、getElementByIDとかみたいな関数はアルファベット表記だから、
テクニカルタームはなるべくカタカナ語の方がいいかな、と。
contentはコンテント(コンテンツ)でもいいと思うけど、
コンテントを表示するって書くのはなんか抵抗がある。
コンテントについての説明がない、ってことは、
テクニカルタームじゃなくて、日常的な意味なのかな、とも思ったりして。
もちろんすぱっと割りきれる問題じゃないとは思うが。

例えば、documentを文書と訳すと致命的に意味不明になる。
As in HTML, document is an object that represents the XUL document itself-the content as opposed to the
window that surrounds it.

ここのcontentは明らかにテクニカルタームじゃないでしょ?
contentをコンテントと訳してしまうと、なぜ、ウィンドウオブジェクトの
surround itが対になっているかが不明瞭になってしまう。
0370デフォルトの名無しさんNGNG
自分はエレメントだったり要素だったりしてる。
あとで統一的な書き方がきまったら直します。

ところでこのドキュメント、function っていってる
けど、メソッドの方が正しいんかな?
0371デフォルトの名無しさんNGNG
このExampleはドキュメントに対するセカンドレベルノードの配列を
作る。そして、このExampleはツリー全体にまで応用できる。
ドキュメントの構造的な表現がこのようになっているので、Exampleのように
あるノードを使って他ノードを取得する手法を使えば、ドキュメントのどの部分にも
、スクリプトで素早くアクセスしたり変更を加えたりできる。
0372358NGNG
ドキュメントオブジェクトは現在作業している特定のスコープでのみグローバルであるので、
ウィンドウ(window),ダイアログ(dialog),ページ(page)、はそれぞれ、
独自にドキュメントオブジェクトを持つ事になる。
使い方はアクセスしたいプロパティの前に"document."という部分をくっつけるだけでよい。

var title = document.getElementById("bookTitle");

今使っているスコープの外からアクセスする事も可能である。
例えば、window.openerをつかって他のウィンドウを開いた場合、次のようにする。

var title = window.opener.document.getElementById("bookTitle");
0373デフォルトの名無しさんNGNG
ch02訳してるけど薀蓄が多いなぁ。
受験英語しか知らん俺には辛い。
0374デフォルトの名無しさんNGNG
すまないけれど質問させてくれ。
XULってのは、Mozillaだけにしか使えない物なのか?
IEでも使えるのか?

で、インターフェイスを作ってそこから何が出来るのか?

面白そうな技術なら俺も調べてみたいのだが
0375デフォルトの名無しさんNGNG
スクリプト言語を扱えて、XBLが使えて、XML文書インスタンスに直接CSSを適用できるなら、Mozilla以外でもXULは利用できると思います。
ただ、現在それができてXULパーサとして使えるのはGeckoくらいのものでしょうね。
0376デフォルトの名無しさんNGNG
>>375
詳しく有難う。XBLっていうのが何かわからないけれど、
IEにそれを対応させられればIE上でも動くかもしれない、と。
#XMLにCSSってのもよくわからないですが、XSLTの書き間違いでしょうか?

調べてみます。
0377デフォルトの名無しさんNGNG
自己レス。CSSからダイレクトにXMLを参照するんですね。
結構違和感あるけど、興味がすごい湧きました。
ちょっとずつ調べてみます。

とりあえずは、XULを使うと、どのような状況で何が出来るのかを知りたいです(w
0378デフォルトの名無しさんNGNG
XULをIEで使うのは無理。

XULってのはインターフェイス言語。
ただ、XUL自体はXMLが元になっている。
例えば、<html:input type="button" value="MyLabel" onclick=";"/>
みたいなものを
<xul:button label="Mylabel" oncommand=";"/>
のように使いやすく再定義してある。
その定義ファイルがXBL。
conditionやactionが羅列してある。
0379デフォルトの名無しさんNGNG
>>378
レスサンクスです。ということは、
HTMLを使ってインターフェイスを作成するのが最終目標で、
それをXULで定義する。XBLが定義言語(xml-html binding)
という認識でよろしいでしょうか?

今までJavaScriptなどで出来ていた事が、簡潔に書けるようになるということですね
0380375NGNG
XBLは、XMLでDOM要素ノードとしての振る舞い(メソッドやプロパティ)を定義する仕組みです。
例:http://lxr.mozilla.org/mozilla/source/toolkit/content/widgets/tabbrowser.xml
パーサに変更を加えずに要素の振る舞いを定義できるからか、MozillaではXUL要素の振る舞いのほとんどはこうして定義されています。
IEの場合は"binding"で同じようなことができるかもしれませんが、僕はよく知りません。

XULはプラットフォームごとに異なる解釈をされます。
例えばMacOSであれば、menubar要素はGeckoではなくMacOSの機能でレンダリングされていると思います。
ということは、MacIEではMacIEのエンジンがXULに対応しないとどうにもなりません。
Windowsなら一つのウィンドウの中に全部の要素が収まるはずなので、CSSの問題とバインディングのことさえ解決できれば、WinIEでもXULを使えるかもしれません。
……ということを>>375で言いたかった、と。

ちなみに、XMLに直接CSSを適用させるという使い方は、XHTML2.0やSVGなどではごく当たり前にされています。
0381375NGNG
訂正。
IEの場合は"binding"で → IEの場合は"behavior"で
0382375NGNG
XULの目的は、今までHTMLで提供されていたような貧弱なフォームコントロールに止まらないもっとリッチなインターフェースをXMLで記述することです。
また、XUL自体はプラットフォーム非依存なので、Web上のサービスなどのクロスプラットフォームなインターフェースを記述するにはうってつけです。
「HTMLを使ってインターフェイスを作成する」というより、
「HTMLのようにクロスプラットフォームな技術でインターフェースを作成する」と考えて下さい。
XULの仕様(明確なものはまだありませんが……)に乗っ取った動作ができるなら、必ずしもXBLで要素の振る舞いを定義している必要はないでしょう。

http://slashdot.jp/article.pl?sid=02/12/05/0810253
XULの用途についてはこの辺の記事でも色々述べられています。
0383375NGNG
乗っ取った→則った
誤字が多いなあ。
0384デフォルトの名無しさんNGNG
なぜsage進行なのか疑問を感じながらresです。

>375氏 >>380
解りやすいサンプル有難うございます。
Mozillaの基礎的な理解(NGLayoutとか)が必要みたいですね
NGLayoutを調べるに従ってちょっとずつわかってきた感じです。
上記のサンプルは、NGLayoutをタブブラウザ化するためのxulですよね?
0385デフォルトの名無しさんNGNG
>>382
例えば、amazon.comとかのソースを書くほどの根性もなく、
htmlの限界にげんなりしている人が、もっと手軽にインターフェイスを実装するための
言語ということでしょうか?

IEのBehaviorとかを使うのはクロスプラットフォームの観点から外れている、と言うことかな?
■ このスレッドは過去ログ倉庫に格納されています