構成オブジェクト内で定義されているメタデータの中には、ローカライズをサポートするものもあります。 ローカライズをサポートするプロパティには LocalizableStringAttribute と表示があり、これらのプロパティがローカライズ不可能な値に設定されている場合、コンパイラは警告を出します。 これらの値は、拡張情報を持つ string-resources.json ファイルを含め、文字列リソース キーを % 文字で囲むことでローカライズできます。
ローカライズされた DisplayName と ToolTipText を使用した Command は、次のようになります。
public override CommandConfiguration CommandConfiguration => new("%Microsoft.VisualStudio.MyExtension.SampleRemoteCommand.DisplayName%")
{
ToolTipText = "%Microsoft.VisualStudio.MyExtension.SampleRemoteCommand.ToolTipText%"
}
string-resources.json
拡張機能では、拡張機能がサポートするすべての言語に対して string-resources.json ファイルを提供する必要があります。 この JSON ファイルは、キーが文字列リソースのグローバルな (Visual Studio 全体) 一意識別子で、値がローカライズされた文字列リソースであるキーと値のペアのディクショナリです。 これらの JSON ファイルは、.vsextensionディレクトリの下に拡張情報と共にデプロイする必要があります。各サポート言語は、ロケールの名前 (ドイツ語の場合は "de"、イタリア語の場合は "it") と一致するフォルダーに保存されます。拡張情報で Visual Studio が現在設定している言語をサポートしていない場合、.vsextension ディレクトリのルートにデプロイされた string-resources.json が既定として使用されます。 ディレクトリ構造の表示例は、次のとおりです。

string-resources.json のサンプル:
{
"Microsoft.VisualStudio.MyExtension.SampleRemoteCommand.DisplayName": "Sample Remote Command Display Name",
"Microsoft.VisualStudio.MyExtension.SampleRemoteCommand.ToolTipText": "Sample Remote Command ToolTip"
}
次のステップ
VisualStudio.Extensibility コマンドの詳細については、「Visual Studio のコマンドを追加する」を参照してください。