←TopPage>eclipseで開発>リソースバンドル化


リソースバンドル化

プロローグ

Javaで開発を行っていると、

「うーむこの文字リテラルは、リソースバンドルに
しておいた方が、あとで 日本語化する時に便利だよな~」

なんて、思いながらも開発工数の短い中で、後回しになったまま、 結局、リソースバンドル化は、せずに英語メッセージのままに なっちゃうんですよね~*1

eclipseのリファクタリング機能

じゃじゃーん~ こういう時に、eclipseのリファクタリング機能のうちの「ストリングの外部化」 機能が出番です。

などが参考になります。

ここで「パッケージ・コンテキスト・メニューの Find Strings to Externalize」 なんてでてくるのですが、わんこの日本語化しちゃって環境では、メニューは 変わっちゃっているし、そもそも「パッケージ・コンテキスト・メニュー」 なんていうのが、どこにあるのか分からなくて、迷いました。

ソースを開いておいて、メニューの「ソース」→「ストリングの外部化」

menu.jpg

なんですね~

「ストリングの外部化」を使ってみる

さっそく起動してみると、ターゲットの.javaファイルを聞いてくるので 選択して、あとは「次へ」を押していくと良い感じに進みます。 「プロパティ・ファイル名(E):」だけは、defaultでは、test.proparties になるので、HelloWorld.properitesに換えてました。

最後に「オリジナルのファイル」と「リファクタリング後のファイル」の 比較が表示されるので、ここで何が変わったかしっかり確認しましょう。

で終わると、HelloWorld.javaが、こんな風になりました。

public class HelloWorld {
  public static void main(String[] args) {
    System.out.println(Messages.getString("Hello_1")); //$NON-NLS-1$
  }
}

これを利用するには、自動生成されたMessages.javaにBUNDLE_NAMEが"test"の ままなので"HelloWorld"に治した

import java.util.MissingResourceException;
import java.util.ResourceBundle;

public class Messages {

	private static final String BUNDLE_NAME = "HelloWorld"; //$NON-NLS-1$

	private static final ResourceBundle RESOURCE_BUNDLE =
		ResourceBundle.getBundle(BUNDLE_NAME);

 	private Messages() {
	}

	public static String getString(String key) {
		try {
			return RESOURCE_BUNDLE.getString(key);
		} catch (MissingResourceException e) {
			return '!' + key + '!';
		}
	}
}

と、プロパティファイルHelloWorld.properties

Hello_1=Hello World

が必要です。

日本語バンドル(ユニコードエンコーディングするなり)

日本語バンドルのファイル名はHelloWorld_ja.propertiesとします。 このファイルは、ユニコードエンコーディングする必要があります。 私は、native2asciiコマンドで変換しました。

Hello_1=\u3053\u3093\u306b\u3061\u308f

と「こんにちは」と出るようにしてみました。

ユニコードエンコーディングへの変換は、eclipse用のpluginで公開されている Unicodeエスケーププラグインと用意されていて、これを導入すると メニューの「編集」に「Unicode Escape/Unescape」が追加されて 何かできるらしいのだけど、いまだ使い方が分かってません。 どうやらプロパティファイルを編集するときに有効になるようです。 でも… わたしのHelloWorld_ja.propertiesでは有効じゃないぞ~ ;)

次は

そろそろ、eclipseでJ2EE開発入門のページ「 J2EEみんとす 」は、如何でしょうか?

←もくじに戻る


←TopPage>eclipseで開発>リソースバンドル化


*1 最近は、ソース上には日本語なんて出てこないユーザから遠いシステムの開発なので

添付ファイル: fileHelloWorld.properties 1256件 [詳細] fileHelloWorld_ja.properties 1220件 [詳細] fileMessages.java 862件 [詳細] fileHelloWorld.java 870件 [詳細] filemenu.jpg 2054件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2003-07-20 (日) 02:27:17