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



フラグメントによる国際化

 ここまでで紹介した内容はいずれもプラグイン・プロジェクト内にロケールごとのプロパティファイルを格納する方法でした。フラグメントを使用するとEclipseのランゲージパックのようにプラグイン形式で対応言語を追加することが可能です。フラグメントはこのように既存のプラグインに対して追加機能や追加リソースを提供することを目的とした制限付きのプラグインのようなもので、以下のようなメリットがあります。

  1. 特定のロケール/プラットフォーム向けのリソースを後から追加することができる
    日本語に対応していないプラグインでも、フラグメントを作成することで元のプラグインには手を入れずに日本語に対応させるといったことが可能です。また、プラグイン開発者にとってもまずは英語や母国語など必要最低限の言語に対応しておき、後から必要に応じて各国語向けのフラグメントを提供することができます。

  2. 不要なロケール/プラットフォーム向けのリソースをインストールせずに済む
    特にEclipseのランゲージパックのように翻訳されたリソースが膨大なサイズになってしまう場合、言語別にフラグメントを分けておくことで必要な言語向けのフラグメントのみをインストールするということが可能になります。

フラグメント・プロジェクトの作成

 それでは実際にフラグメントを作成してみましょう。[ファイル]→[新規]→[プロジェクト]から新規プロジェクト・ウィザードを起動します。

図9 新規プロジェクト・ウィザード

 フラグメント・プロジェクトを選択して[次へ]をクリックします。

図10 フラグメント・プロジェクトの作成

 プロジェクト名を入力して[次へ]をクリックします。プロジェクト名は任意ですが、ここではjp.sf.amateras.xmleditor.nl としています。

図11 フラグメント・コンテンツの入力

 ホスト・プラグインのプラグインIDにはフラグメントがターゲットとするプラグインのIDを指定します。ここではXMLエディタプラグインのIDであるjp.sf.amateras.xmleditorを指定しています。特定のプラグインのバージョンを指定したい場合はプラグイン・バージョンと一致規則も入力しておきます。[終了]をクリックするとフラグメント・プロジェクトが作成されます。

フラグメントへのプロパティファイルの格納

 作成したフラグメント・プロジェクトにプロパティファイルを配置します。すでにプラグイン・プロジェクトに日本語用のプロパティファイルを作成したので、これをフラグメント・プロジェクトに同じ構造を保つようにコピーしましょう。コピーするのはplugin_ja.propertiesとmessages_ja.propertiesです。コピー後、プラグイン・プロジェクトから日本語向けのプロパティファイルは削除してしまいます。

図12 フラグメント・プロジェクトに日本語用のプロパティファイルを移動したところ

 この状態でランタイム・ワークベンチを起動してみてください。日本語環境ではフラグメント・プロジェクトに格納されているプロパティファイル、それ以外の環境ではプラグイン・プロジェクトに格納されているプロパティファイルに記述した文字列が表示されるはずです。

その他のリソースの国際化

 本連載では取り上げませんが、Eclipseプラグインはユーザーインターフェイス以外にもヘルプコンテンツなどを提供する場合があります。このような場合、フラグメント・プロジェクトのルートにnl というディレクトリを作成し、さらにその配下に ロケール別のディレクトリを作成しファイルを配置しておくことでフラグメントによる国際化が可能になります。

図13 nlディレクトリを作成してヘルプコンテンツを配置したところ


おわりに

 今回作成したプラグイン・プロジェクトおよびフラグメント・プロジェクトはここからダウンロードすることができます。プラグイン・プロジェクトとフラグメント・プロジェクトを1つのアーカイブに圧縮してありますので展開した後それぞれのプロジェクトをEclipseにインポートしてご利用ください。ヘルプコンテンツに関してのサンプルも含んでいますので参考にしていただければ幸いです。

 さて次回は、今回も題材にしたXMLエディタをさらに改良し、コンテンツアシスト(入力補完)機能やアウトラインの表示機能を追加してみたいと思います。

3/3

 INDEX

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

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


Java Solution全記事一覧



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

注目のテーマ

Java Agile 記事ランキング

本日 月間