Hatena::ブログ(Diary)

日影日記

2007-07-07

[] ReSharper を日本語版 Visual Studio で使う (2)

ReSharper のファイルを眺めていたところ、アドインに関する部分であろう JetBrains.VSIntegration.dll が、興味深いリソースを持っていることに気がつきました。

リソース名は JetBrains.VSIntegration.resources.Localization.xml。どうやらこのファイルは、英語版における名称と、その他の言語版における名称を関連づけるために使われているようです。最初から英語版以外への対応の仕組みは存在したということですね。

では、このファイルに日本語版に関する情報を加えることにします。ReSharper 3.0.1 の内容を元に書いていますので、その他のバージョンで同じように適用出来るかどうかはわかりません。

  • JetBrains.VSIntegration.dll を JetBrains.VSIntegration.dll.orig としてバックアップします。バックアップしたファイルは大切に保管しておいて下さい。
  • JetBrains.VSIntegration.dll.orig からリソースを抜き出します。リソースだけ抜き出して、後で差し替える良い方法が見つかりませんでしたので、逆アセンブルしてしまうことにします。
ildasm -output:JetBrains.VSIntegration.il JetBrains.VSIntegration.dll.orig
  • 生成された JetBrains.VSIntegration.resources.Localization.xml に次のような XML をマージします。
<localization>
  <string value="Global">
    <localized localeID="1041" value="全体" />
  </string>
  <string value="Text Editor">
    <localized localeID="1041" value="テキスト エディタ" />
  </string>
</localization>
ilasm -output:JetBrains.VSIntegration.dll -resource:JetBrains.VSIntegration.res -dll JetBrains.VSIntegration.il
  • 生成された JetBrains.VSIntegration.dll には正しい署名が付いていませんので、このままでは検証に失敗します。不本意かもしれませんが、検証省略リストに JetBrains.VSIntegration.dll を追加します。
sn -Vr JetBrains.VSIntegration.dll
  • 元の JetBrains.VSIntegration.dll を生成された JetBrains.VSIntegration.dll で上書きします。

これで正しくショートカットキーが設定されるようになるかと思います。ReSharper の設定画面から、ショートカットキーの再登録を行って下さい。

なお、ここで生成した JetBrains.VSIntegration.dll の取り扱いにはご注意下さい。当然ですが、勝手に配布したりしちゃいけません。^^;