Visual Studio Advent Calendar 2014の22日目です。
みなさん、はじめまして! 窓辺ありにゃん(まどべ ありにゃん)です。アドベントカレンダー自体も初めてです。C#や.NETやVisual Studioが大好きで、プログラミングをやっています。
本来は自サイトで公開する予定でしたが、自サイト開設が間に合わなかったので、Qiitaで公開することにしました。自サイトを開設したら、この記事も移管する予定です。
自分で作ったVisual Studioの拡張機能を海外でも使ってもらいたいですよね? 拡張機能のマニフェスト自体を英語で記述するのも手ですが、逆に日本人にとって使いづらくなってしまいます。
Visual Studioの拡張機能には言語に応じて拡張機能のタイトル、説明、ライセンスを表示する機能があるんですよ! しかし、現時点ではVSIX Language Pack用のテンプレートが存在しない上に、日本語の説明が見つかりませんでした。
ってことで、私が試行錯誤した結果を書いてみます。誰得ですが…。
その前に…
- Visual Studio SDKを予めインストールしておいて下さい。(2010、2010 SP1、2012、2013)
- この記事では、拡張機能のタイトル、説明、ライセンスの多言語化のみ説明します。拡張機能自体の作り方や、メニューやユーザーインターフェイスの多言語化については説明しませんのでご了承下さい。といっても拡張機能自体のの日本語の説明がないのが現実ですが…。
VSIXLangPackの作成方法
.vsixmanifest ファイル(Visual Studio SDKのテンプレートでプロジェクトを作成した場合はsource.extension.vsixmanifest)のあるフォルダー内に新しいフォルダーを作成します。フォルダー名は対応する言語名(例:日本語の場合はja-JP)とします。
作成したフォルダー内に extension.vsixlangpack というファイルを作成します。「新しい項目の追加」で作成する場合、これを書いている時点で残念ながらVSIX Language Pack用のテンプレートがないので、代わりにテンプレートはXMLファイルを推奨します。
extension.vsixlangpack の内容は以下のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<VsixLanguagePack Version="1.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema-lp/2010">
<LocalizedName>拡張機能の名前</LocalizedName>
<LocalizedDescription>拡張機能の説明</LocalizedDescription>
<License>ライセンス(テキストファイルを指定)</License>
<MoreInfoUrl>外部リンク (URL)</MoreInfoUrl>
</VsixLanguagePack>
LocalizedNameとLocalizedDescriptionは必須で、LicenseとMoreInfoUrlは無くてもかまいません。
注意事項
extension.vsixlangpack(ライセンスファイルを指定している場合はそのファイルも)のプロパティで以下のように設定しないとビルド時にVSIXファイルに含まれません。これが原因で、私もうまくいかなかったことがあります。
- Include in VSIX - True
- ビルド アクション - コンテンツ
- 出力ディレクトリにコピー - 常にコピーする または 新しい場合はコピーする
結果
拡張機能本体の言語を英語(米国)に指定して、日本語の言語パックを作成した場合
日本語版Windows 7
英語版Windows 10 TP
参考ページ
以下のページを参考させていただきました。
宣伝(ステルさない「マ」)
Visual Studio Gallaryで自作の拡張機能を公開しています。
まだまだ未熟ですが、今後も拡張機能(主に痛IDE系…w)を公開していく予定です。