メニュー コマンドをローカライズする
VSPackage に対してローカライズされた .vsct ファイルとローカライズされた .resx ファイルを作成し、プロジェクト ファイルを更新して変更内容を反映することによって、メニューとツールバーのコマンド用にローカライズされたテキストを提供することができます。
インストール エクスペリエンスをローカライズする方法の詳細については、「VSIX パッケージをローカライズする」を参照してください。
コマンド名をローカライズする
VSPackage では、メニュー コマンドとツールバー ボタンは .vsct ファイルで定義されています。
ソリューション エクスプローラーで、.vsct ファイルの名前を filename.vsct から filename.en-US.vsct に変更します。
ローカライズされる言語ごとに filename.en-US.vsct のコピーを作成します。
各コピーに filename.{Locale}.vsct という名前を指定します。ここで、{Locale} は特定のカルチャ名です。 カルチャ名の値の一覧については、「Microsoft によって割り当てられているロケール ID」を参照してください。
これらの filename.Locale.vsct ファイルには、パッケージのローカライズされたメニュー テキストが含まれています。
テキストをローカライズするために、それぞれの filename.Locale.vsct テキストを開きます。
特定の言語に合わせて ButtonText 要素の値を変更します。
ローカライズされたアイコンを提供する場合は、ターゲット ファイルを指すように Bitmap 値を変更します。
次の例では、Family Tree Explorer のツール ウィンドウを開くコマンドの英語とスペイン語のボタン テキストを示しています。
[FamilyTree.en-US.vsct]
<Button guid="guidLocalizedPackageCmdSet" id="cmdidFamilyTree" priority="0x0100" type="Button"> <Parent guid="guidSHLMainMenu" id="IDG_VS_WNDO_OTRWNDWS1"/> <Icon guid="guidImages" id="bmpPic2" /> <Strings> <CommandName>cmdidFamilyTree</CommandName> <ButtonText>Family Tree Explorer</ButtonText> </Strings> </Button>
[FamilyTree.es-ES.vsct]
<Button guid="guidLocalizedPackageCmdSet" id="cmdidFamilyTree" priority="0x0100" type="Button"> <Parent guid="guidSHLMainMenu" id="IDG_VS_WNDO_OTRWNDWS1"/> <Icon guid="guidImages" id="bmpPic2" /> <Strings> <CommandName>cmdidFamilyTree</CommandName> <ButtonText>Explorar el arbol genealogico</ButtonText> </Strings> </Button>
その他のテキスト リソースをローカライズする
コマンド名以外のテキスト リソースは、リソース (.resx) ファイルで定義されています。
VSPackage.resx の名前を VSPackage.en-US.resx に変更します。
ローカライズされる言語ごとに VSPackage.en-US.resx ファイルのコピーを作成します。
各コピーに VSPackage.{Locale}.resx という名前を指定します。ここで、{Locale} は特定のカルチャ名です。
Resources.resx の名前を Resources.en-US.resx に変更します。
ローカライズされる言語ごとに Resources.en-US.resx ファイルのコピーを作成します。
各コピーに Resources.{Locale}.resx という名前を指定します。ここで、{Locale} は特定のカルチャ名です。
各 .resx ファイルを開き、特定の言語とカルチャに合わせて文字列値を変更します。 次の例は、ツール ウィンドウのタイトル バーのローカライズされたリソース定義を示しています。
[Resources.en-US.resx]
<data name="ToolWindowTitle" xml:space="preserve"> <value>Family Tree Explorer</value> </data>
[Resources.es-ES.resx]
<data name="ToolWindowTitle" xml:space="preserve"> <value>Explorador del arbol genealogico</value> </data>
ローカライズされたリソースをプロジェクトに組み込む
ローカライズされたリソースを組み込むには、assemblyinfo.cs ファイルとプロジェクト ファイルを変更する必要があります。
ソリューション エクスプローラーの [プロパティ] ノードから、エディターで assemblyinfo.cs または assemblyinfo.vb を開きます。
次のエントリを追加します。
[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
これにより、既定の言語として英語 (米国) が設定されます。
プロジェクトをアンロードします。
エディターでプロジェクト ファイルを開きます。
ルートの
Project
要素に、既定の言語に一致するUICulture
要素を持つPropertyGroup
要素を追加します。<PropertyGroup> <UICulture>en-US</UICulture> </PropertyGroup>
これにより、Windows Presentation Foundation (WPF) コントロールの既定の UI カルチャとして英語 (米国) が設定されます。
EmbeddedResource
要素を含むItemGroup
要素を探します。VSPackage.en-US.resx を呼び出す
EmbeddedResource
要素で、次のように、ManifestResourceName
要素を、VSPackage.en-US.Resources
に設定されたLogicalName
要素に置き換えます。<EmbeddedResource Include="VSPackage.en-US.resx"> <MergeWithCTO>true</MergeWithCTO> <LogicalName>VSPackage.en-US.Resources</LogicalName> </EmbeddedResource>
ローカライズされる言語ごとに、
VsPackage.en-US
のEmbeddedResource
要素をコピーし、コピーの Include 属性と LogicalName 要素をターゲットのロケールに設定します。次の例に示すように、ローカライズされた各
VSCTCompile
要素に、Menus.ctmenu
を指すResourceName
要素を追加します。<ItemGroup> <VSCTCompile Include="LocalizedPackage.es-ES.vsct"> <ResourceName>Menus.ctmenu</ResourceName> </VSCTCompile> </ItemGroup>
プロジェクト ファイルを保存してプロジェクトを再度読み込みます。
プロジェクトをビルドします。
これにより、各言語のメイン アセンブリとリソース アセンブリが作成されます。 デプロイ プロセスのローカライズの詳細については、「VSIX パッケージをローカライズする」を参照してください