2012-01-05 7 views
8

Androidアプリケーションでは、リソースはx30形式のドキュメントに指定されています。これは自動的にRクラスに組み込まれています。JavaのXMLベースのリソースクラスを自動的に構築

通常のJavaデスクトップアプリケーションで同様のアプローチを使用する方法はありますか?

私が達成したいのは、コードから文字列を削除すること(多かれ少なかれ "レイヤー"の分離)と、プログラムを伝えるだけでローカリゼーションのサポートを追加することです所望の言語に対応するXMLファイルを選択する。

私はちょっと調べましたが、コードを生成するためにXMLを利用するツールではなく、私が探しているものが解析や出力の結果について溺れているようです。

答えて

2

Eclipseのメッセージバンドルの実装は外部化文字列機能と統合し、静的クラスの両方を生成internationalization-私は、これはあなたが何を意味するかであるかはわからないが、チェックアウトして、プロパティは、あなたの文字列をファイルのリソース:

http://www.eclipse.org/eclipse/platform-core/documents/3.1/message_bundles.html

この統合のためにEclipseを動作させるには、クラスパス上org.eclipse.osgi.util.NLSを参照する必要があります。メモリから、利用可能だったライブラリの依存関係は、私がこのアプローチを使用したプロジェクトでは少し難解だったので、ソースを得て、それを私のコアモジュールのスタンドアロンクラスとして持っていました。その上に)。

これはあなたが探している型の安全性を提供し、IDEの機能は多くの時間を節約します。私はこれまでのアプローチには欠点がないことを見出した。

編集:これは実際にghostbust555がコメントで述べたものですが、この記事ではEclipseプラグインに限定されておらず、メッセージクラスの静的メンバーを介してリソースを参照しています。

このアプローチを独自のアプリケーションで使用している他の人は何も言及していませんが、IDEの統合と型の安全性を考えれば完全に意味があります。

+0

これは非常に有望です。私はEclipse 3.7.1を実行しています。メニューの "Externalize strings ..."をクリックすると、まだ古いバージョンがあるようです。新しいバージョンを動作させるにはどうすればよいですか? –

+0

プロジェクトのクラスパス上にNLSクラスが必要です。私の場合は、依存関係のためにライブラリを混乱させるのではなく、コードを取得してプロジェクトに追加しました(パッケージを保持する必要があります!)、マイナーロギングの依存関係を使用していたフレームワークに置き換えました。クラスはこちら:http://grepcode.com/file/repository.grepcode.com/java/eclipse.org/3.5/org.eclipse/osgi/3.5.0/org/eclipse/osgi/util/NLS.java –

+0

OK、私はそれが働いている=)しかし、私はローカリゼーションのためのこのアプローチを使用する方法を理解することができません(つまり、UIの異なる言語を指定する)。 –

0

(例えば、プラグインによって使用される)http://netbeans.org/kb/docs/java/gui-automatic-i18n.html

+0

私が探しているものと同じように見えます。残念ながら、チュートリアルは完全にNetBeansのために作られています。私はEclipseを使用しています... –

+0

http://www.eclipsepluginsite.com/internationalization.htmlこれを試してみてください – ghostbust555

+0

Eclipseの組み込み「文字列の外部化」機能を使用すると私のGUIファイルから文字列を取り出してリソースに入れても、まだ生成された型セーフなクラスは生成されません。私が後にしているのは、実際に*コード*を文字列でビルドするツールであり、リソースバンドルから文字列を取り上げるだけではありません。 –

0

XMLファイルを解析し、JAXPJAXBのような類似の構造体のオブジェクトを生成するものを探していますか?

+0

私はxml体系を定義して、自分自身でパースコードを作成する必要がない何かを好むでしょう。構造体、多かれ少なかれ、 'String'プロパティでも)私はそこに何かが存在することを望んでいました。 –

0

私はリソースバンドルのXMLファイルが型安全な方法でリソースにアクセスするために使用できるJavaファイルを生成するResGenに出くわしました。

http://eigenbase.sourceforge.net/resgen/

+0

これは非常に有望で、私が欲しかったようなものです。我々は現在、ビルのためにアリを使用していないが、これはステップを取る価値があるかもしれない... –

関連する問題