plugin.xml中のストリングの外部化
今Ymir Eclipseプラグインを開発しているのだが、そこでハマったことがあったのでメモする。
Eclipseプラグインのplugin.xml中のストリングを外部化するには、plugin.xml中に「%」で始まるキー文字列を埋め込んでおき、対応するプロパティをplugin.propertiesに記述すれば良い。
例えば以下のようなウィザード
<wizard category="org.eclipse.jdt.ui.java" class="org.seasar.ymir.eclipse.wizards.NewProjectWizard" finalPerspective="org.eclipse.jdt.ui.JavaPerspective" icon="icons/newYmirProject.gif" id="org.seasar.ymir.eclipse.wizards.NewProjectWizard" name="Ymir Project" project="true">
の名前を外部化するには、name属性の値を「%」で始まるキー文字列に置き換えて、
... name="%newWizard.name" ...
対応するプロパティをplugin.propertiesに追加する。
plugin.properties:
newWizard.name=Ymir Project
ところがEclipse3.3ではこれだけでは駄目で、META-INF/MANIFEST.MFに以下のキーを追加しておく必要がある。
Bundle-Localization: plugin
遠い昔にEclipseプラグインを作った時にはこんなものは不要だったので、1時間ばかりハマった。
参考ページ: http://www.ibm.com/developerworks/jp/opensource/library/os-eclipse-plugindev1/index.html#N101E4
なおPDEのプラグインマニフェストエディタのOverviewページで右クリックすると表示されるメニュー項目「Externalize Strings...」を使ってストリングを外部化すれば、自動的に上記キーがMANIFEST.MFに追加されるようである。