[[FireVox]]にもどる このコンテンツは現在執筆中です。 * 目次 [#o870cb0c] #contents * 目的 [#x6e30939] FireVoxを日本語化したときの工程や、資料をまとめます。 日本語ロケールファイルを付け加える作業だけではなく、 ローカリゼーション機構のない拡張にlocalフォルダを作り多言語対応にする方法です。 一からローカリゼーション対応の拡張を作るときにも役に立つでしょう。 これは私がこのようにやったという報告であって、正攻法ではないかもしれません。 * 参考ページ [#c74ae3a7] 主に以下のサイトを参考にしました。他にも記録していないページを参考。 ここにあるページの情報を見れば、自分がまとめる必要もないかもしれない。 ここにあるサイトは古い情報が含まれている可能性があります。事実そのために手こずったところもあります。 -Firefoxまとめサイト --[[拡張の作成:http://firefox.geckodev.org/index.php?%B3%C8%C4%A5%A4%CE%BA%EE%C0%AE]] -[[How to create Firefox extensions:http://roachfiend.com/archives/2004/12/08/how-to-create-firefox-extensions/]] 上記の原文 -Mozilla Japan --[[ローカライズセンター:http://www.mozilla-japan.org/jp/l10n/]] -[[もじふぉ:http://forums.firehacks.org/l10n/index.php]] 日本語化に関する総合フォーラム --[[拡張の日本語版:http://forums.firehacks.org/l10n/viewtopic.php?t=41&start=0&postdays=0&postorder=asc&highlight=&sid=6243ddc810a4d2c73d13f336ac81d05a]] --[[ 拡張の日本語化に挑戦したい!?:http://forums.firehacks.org/l10n/viewtopic.php?t=355&start=0&postdays=0&postorder=asc&highlight=&sid=2675915a0faf56621f2234926077ec8c]] -takanory.net --[[拡張機能の日本語化:http://takanory.net/firefox/japanize/]] -[[XULplanet.com:http://www.xulplanet.com/]] --[[Localization:http://www.xulplanet.com/references/xpcomref/group_Localization.html]] -[[Creating Applications with Mozilla:http://books.mozdev.org/html/]] * 準備するソフト [#odffead2] * パッケージの展開 [#i03a14cc] * ローカリゼーションへの対応 [#d85861c3] ** パッケージのローカリゼーション対応 [#g6009011] *** install.rdfの記述 [#nbe6b58b] *** フォルダの構成 [#z78b5a5e] *** contents.rdfの記述 [#t41f4b24] ** XULのローカリゼーション対応 [#m8f95343] *** XULファイルの記述 [#c2eb8505] *** DTDファイルの記述 [#q60ced65] ** Javascriptのローカリゼーション対応 [#f08a5c51] 拡張の動作内容を記述しているのがJS拡張子を持つJavascriptファイルです。このJavascriptで出力される文字列もローカリゼーションの対象となります。 おおまかな手順は次の通りです。 -localeフォルダに、PROPERTIESファイルを作成する。 -対象となるJavascriptを呼び出しているXULファイルにPROPERTIESファイルを登録する。 -Javascript内の文字列を見渡し、翻訳の対象とすべき文字列がどれかを調べる。 -翻訳対象の文字列に英数字で名前をつけ、それをPROPERTIESファイルに後述の書式に従って、その名前と文字列との対応表を作る。 作業の対象は、以下の3種類のファイルです。 -XULファイル -JSファイル -PROPERTIESファイル それでは、細かな手順を示します。 *** PROPERTIESファイルはどこに作るのか。 [#k5f3ea78] PROPERTIESファイルはlocaleフォルダ内に作ります。これはJavascript内で記述されている文字列の言語のロケールフォルダ内です。例えば英語で記述してありメッセージが英語で出力されるプログラムを作業の対象にする場合は英語ロケールとなり、その言語のinstall.rdfで記述しているロケール指定の階層にファイルを作ります。 例えば、以下のような記述がinstall.rdfファイル内にあるとき、 <em:locale>locale/en-US/</em:locale> この場合は、localeフォルダ内のen-USフォルダに作ります。次の場合は、 <em:locale>locale/en-US/hoge/</em:locale> localeフォルダ内のen-USフォルダ内のhogeフォルダ内に作ります。 *** PROPERTIESファイルに名前を付ける。 [#wb34d6c9] 名前は任意ですが、その拡張機能の名前にしたほうがわかりやすいでしょう。そして拡張子にpropertiesを付けます。 例えば、拡張機能hogeを作っているときは、hoge.properites とします。 またXULファイル毎にPROPERTIESファイルを用意したり、わかりやすいように複数に分類してもかまわないでしょう。 *** XULファイルへ登録する。 [#f20a8266] PROPERTIESファイルの登録はそれが使われるXULファイル内で、stringbundleset要素とstringbundle要素を使って登録します。 以下のように登録することで、Javascriptのプログラム内からPROPERTIESファイルの内容を参照することができるようになります。 利用するPROPERTIESファイル毎にわかりやすい任意のidを決めてstringbundle要素を作ります。 例えば、idがhoge-bundle、PROPERTIESファイルがhoge.propertiesのときは、 <stringbundle id="hoge-bundle" src="chrome://hoge/locale/hoge.properties"/> となります。 これを、PROPERTIESファイルの数だけ用意して(通常は一つでOK)、全体をstringbundleset要素で囲みます。このstringbundleset要素にも任意のid属性を指定しておきます。 <stringbundleset id="hoge-bundle-set"> <stringbundle id="hoge-bundle" src="chrome://hoge/locale/hoge.properties"/> </stringbundleset> *** どの文字列を翻訳対象にするか。 [#z25063be] Javascriptの書かれているjsファイル内から、文字列の部分を探し出します。これにはJavascriptの文法が分かっていなくてはいけません。文字列をすべて抜き出してしまえばいいというものでもありません。表示もしくは音声による出力に関連するものや、外部からの入力に対するものなど、プログラムの動作を詳しく分析しながら、判断していきます。 このとき便利なのは、Javascriptの構文を認識し着色してくれるエディタですね。文字列部分を容易に見つけ出せます。もしくは検索で該当箇所を着色してくれる機能があるエディタです。検索には次のような正規表現を使えばいいでしょう。 ("[^"]*"|'[^']*') *** PROPERTIESファイルにリストを作る [#r51a5574] XULファイル内で呼び出されているJavascriptファイルに対して一つずつ翻訳対象の文字列がないか調べていきます。見つかったら、その情報を先ほどXULファイルに登録したPROPERTIESファイルに、記述していきます 記述の仕方ですが、文字列を見つけたらそれを指し示す名前を決めます。万人のために英語的な名前にします。この名前の後に'='記号を置いて、その文字列そのものを置きます。文字列を囲む引用符はいりません。改行しこれを繰り返します。 例えば、"Hello,World!"という文字列が見つかったら、PROPERTIESファイルに、 HelloWorld=Hello,World! という行を追加します。 * ローカライズ [#ie062245] 以上の手順でローカリゼーション対応の機能拡張パッケージを作成できたら、翻訳したい言語(今回は当然日本語)で、ローカライズをしていきます。 何をなすべきかが分かっていれば、上記のローカリゼーション対応作業の中で同時並行で、以下の作業をおこなってもかまいません。 **install.rdfへの追加 [#jcd283b4] **ロケールフォルダの作成 [#a5c56de7] **DTDファイルの作成 [#x55735a1] **PROPERTIESファイルの作成 [#w6d33fa5] * パッケージの仕方 [#be313edc]