Eclipseプラグイン実践テクニック(1)
Eclipseプラグインを国際化しよう
フラグメントによる国際化 |
ここまでで紹介した内容はいずれもプラグイン・プロジェクト内にロケールごとのプロパティファイルを格納する方法でした。フラグメントを使用するとEclipseのランゲージパックのようにプラグイン形式で対応言語を追加することが可能です。フラグメントはこのように既存のプラグインに対して追加機能や追加リソースを提供することを目的とした制限付きのプラグインのようなもので、以下のようなメリットがあります。
- 特定のロケール/プラットフォーム向けのリソースを後から追加することができる
日本語に対応していないプラグインでも、フラグメントを作成することで元のプラグインには手を入れずに日本語に対応させるといったことが可能です。また、プラグイン開発者にとってもまずは英語や母国語など必要最低限の言語に対応しておき、後から必要に応じて各国語向けのフラグメントを提供することができます。
- 不要なロケール/プラットフォーム向けのリソースをインストールせずに済む
特に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全記事一覧 |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
|
|