ファイヤープロジェクト
プロパティファイル
2005-03-07T23:10+09:00   matsu
XULではプロパティファイルを使用できるらしいので,使用してみた.
Javaなどでおなじみのアレである.以下にサンプルを示す.
プロパティ名=値
で構成されるファイルである.こいつをプロパティファイルとして読み込んで,JavaScriptで使用できる.これにより,動作に関する設定を行ったり,JavaScriptで使用するメッセージデータを多言語対応させることができる(※).上記プロパティファイルを前頁まで作成してきたサンプルである,電卓プログラムに適用してみる.具体的には,locale/en-US下に配置して,JavaScriptからメッセージデータとして読み込み,ダイアログにて出力する.
※ 先のロケール頁で紹介したDTDファイルによる多言語対応は,XULファイルでしか有効でない.
サンプル,電卓XULアプリケーションにプロパティファイルを導入してみた.これ.サンプルのためのinstalled-chrome.txtの記述は以下(前頁と同じ).
content,install,url,jar:resource:/chrome/mycalculator.jar!/content/mycalculator/
skin,install,url,jar:resource:/chrome/mycalculator.jar!/skin/mycalculator/
locale,install,url,jar:resource:/chrome/mycalculator.jar!/locale/en-US/mycalculator/
locale,install,url,jar:resource:/chrome/mycalculator.jar!/locale/ja-JP/mycalculator/
今回は動作設定のためのものと,多言語対応のためのものを作成した.前者がcontentの下,後者がlocaleの下(en-US,ja-JPそれぞれ)に配置した.
mycalculator.xulを以下に示す.
プロパティファイルを読み込むための肝は以下である.
<stringbundle id="action-setting" src="chrome://mycalculator/content/mycalculator.properties"/>
<stringbundle id="messages" src="chrome://mycalculator/locale/mycalculator.properties"/>
たぶん要素windowの子として書く必要がある.複数のプロパティファイルを読み込むことができ,JavaScriptからは属性idの値によって指定する(詳細は後述).属性srcの値はchromeURLにて指定した.
サンプルのJavaScriptを以下にしめす.
プロパティの値読み込みのポイントの一つは以下である.
  var strbundle = document.getElementById("messages");
  var confirmCloseMessage=strbundle.getString("confirmClose");

  confirmresult = confirm(confirmCloseMessage);
まずid指定でXULファイルの要素stringbundleを取得し,それからプロパティの左辺値を指定して値を取得している.最後に取得した値をダイアログに表示している.
matsu(C)
Since 2002
Mail to matsu