Eclipseプラグイン実践テクニック(1)
Eclipseプラグインを国際化しよう
NTTデータ先端技術 竹添直樹
NTTデータ 基盤システム事業本部 岡本隆史
2006/8/26
プラグインの国際化 |
「作って覚えるEclipseプラグイン」では、Eclipseのプラグイン開発に関するトピックを解説してきました。本連載では、より実践的な内容を紹介していきます。第1回ではプラグインを国際化する方法を解説します。「作って覚えるEclipseプラグイン」で作成してきたプラグインはいずれもユーザーインターフェイスで使用される文字列をマニフェストファイルやソースコード中にハードコードしてきましたが、より多くのユーザー(海外のユーザー)にプラグインを使ってもらおうという場合にはユーザーインターフェイスの国際化は必須になります。これはEclipseプラグインに限った話ではなく、通常のJavaアプリケーションにおいてもリソースバンドルを使用した文字列の外部化は一般的に行われています。
Eclipseプラグイン開発において文字列の外部化が必要になるのは、主に以下の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 |
|
|
|
plugin_ja.properties |
|
|
図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全記事一覧 |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (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に関する基礎知識を解説する。
|
|