
open/dolphin.client以下でそれらしいclassを探したところ、AbstractMenuFactory.javaを発見しました。中身は至ってシンプル、OSを調べてMacであればMacMenuFactoryのインスタンスを作成し、それ以外であればWindowsMenuFactoryのインスタンスを作成する典型的なFactory patternになっているようですね。
で、今回はMacの問題なので、MacMenuFactoryを見てみます。ん〜。普通のメニューのコードっぽいけど、、、。でも、なんかメニューを選択した後のアクションはアノテーションで指定しているっぽいな。メニュー項目は、英語決めうちの様に見えるのに、なんで見えないのかな?
で、ちょっと気になったコードが以下です。
ApplicationContext ctx = ClientContext.getApplicationContext();なんだかリソースっぽいものを読み込むコードの様ですが、具体的なファイルの指定がありません。どうやらApplicationContextを使ったリソースへのアクセスには、resources.MacMenuFactory.propertiesから得る事になっているようです。ってことでclient/resourcesを覗いてみるとMacMenuFactory.txtなるファイルがあるではないですか。
ResourceMap resMap = ctx.getResourceMap(MacMenuFactory.class);
これをpropertyファイルにかえなければならないようです。
で、そのままファイル名をかえてみたのですが、文字が出てくるには出てきたのですが、文字化けです。ここで、はたと気がつきました。Javaはもともとunicodeがデフォルトだったはずでは?そこで、native2asciiでunicodeにエンコーディングし直したところ、無事に日本語が表示されました。

client/resourcesフォルダ以下には*.txtファイルが他にもあります。もしかしたらこれらもpropertiesファイルに変更しなければ、どこかで問題が出てくるかもしれません。
0 件のコメント:
コメントを投稿