Eclipseプラグイン実践テクニック(1)
Eclipseプラグインを国際化しよう



NTTデータ先端技術 竹添直樹
NTTデータ 基盤システム事業本部 岡本隆史
2006/8/26


プラグインの国際化

 「作って覚えるEclipseプラグイン」では、Eclipseのプラグイン開発に関するトピックを解説してきました。本連載では、より実践的な内容を紹介していきます。第1回ではプラグインを国際化する方法を解説します。「作って覚えるEclipseプラグイン」で作成してきたプラグインはいずれもユーザーインターフェイスで使用される文字列をマニフェストファイルやソースコード中にハードコードしてきましたが、より多くのユーザー(海外のユーザー)にプラグインを使ってもらおうという場合にはユーザーインターフェイスの国際化は必須になります。これはEclipseプラグインに限った話ではなく、通常のJavaアプリケーションにおいてもリソースバンドルを使用した文字列の外部化は一般的に行われています。

 Eclipseプラグイン開発において文字列の外部化が必要になるのは、主に以下の2点です。

  1. マニフェストファイル
    エディタやビュー、アクションなどの名称はマニフェストファイルに記述されています。これらの文字列をロケールごとに用意したプロパティファイルに外部化します。
  2. ソースコード中の文字列
    Javaソースコード中の文字列をロケールごとに用意したプロパティファイルに外部化します。Javaソースコード中ではリソースバンドルを使用してロケールに応じた文字列を取得します。

 いずれの場合でも国際化する文字列はプロパティファイルに記述しておく必要がありますので、「CoolなEclipseプラグイン」の第1回で紹介されているPropertiesEditorプラグインや、第5回で紹介されているCrossJ PropEditorプラグインなどのようにプロパティファイルの編集を支援するためのプラグインをインストールしておくとよいでしょう。

 今回は「作って覚えるEclipseプラグイン」の第3回および第4回で作成したXMLエディタプラグインを例にプラグインを国際化する手順を解説していきたいと思います。

マニフェストファイルの国際化

 まずはマニフェストファイルに含まれる文字列を外部化してみましょう。マニフェストファイルではプラグイン・プロジェクトのルートディレクトリにplugin.properties というプロパティファイルが存在する場合、そのファイルに含まれるエントリを%キーという形式で参照することができます。プロパティファイルはplugin_ja.propertiesなどのようにロケールごとに用意しておくと、Eclipse起動時のロケールに応じて適切なものが使用されます。

 XMLエディタプラグインには、以下のようにXMLエディタとXMLエディタのプリファレンスページが含まれています。

図1 プラグインマニフェスト

 エディタ名、プリファレンスページ名ともに英語での表記になっていますので、この部分を外部化してみます。プラグインのルートディレクトリにplugin.properties、plugin_ja.propertiesを作成し、それぞれ以下のように記述しておきます。

 plugin.properties
Editors.XMLEditor=Sample XML Editor
Preferences.XMLEditor=Sample XML Editor
 plugin_ja.properties
Editors.XMLEditor=サンプルXMLエディタ
Preferences.XMLEditor=サンプルXMLエディタ

 

図2 プロパティファイルを作成したところ

 そして、マニフェストエディタでそれぞれのname属性に
%Editors.XMLEditor、%Preferences.XMLEditorというようにプロパティファイルのキー名を指定します。

図3 name属性を修正したところ

 こうしておくと、日本語環境で起動した場合にはplugin_ja.propertiesで指定した文字列が、それ以外の場合はplugin.propertiesで指定した文字列が表示されるようになります。

図4 マニフェストに含まれる文字列がロケールに応じて切り替わるようになった

 

  1/3

 INDEX

第1回 Eclipseプラグイン実践テクニック

Page1
プラグインの国際化
  Page2
Javaソースコードの国際化
  Page3
フラグメントによる国際化



Java Solution全記事一覧



Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間