我正在尝试使用visx包项目创建一个小型且有用的Visual Studio扩展。 (我的Visual Studio版本是2019 Enterprise 2019预览版16.2.0预览版1.0)
我所遭受的是无法本地化该项目。 我参考并遵循的指南是下面的MSDocument网站。
https://docs.microsoft.com/en-us/visualstudio/extensibility/localizing-menu-commands?view=vs-2019
为解决该问题,我创建了一个非常简单的名为“ VsixLocalizeTrial”的Vsix项目,并添加了一个名为“ TestCommand01”的CustomCommand,该命令在单击菜单时显示信息警报消息。 (我使用.resx文件对消息的第一行进行了本地化,并且工作正常。)
我已将上述示例程序上载到github。 (https://github.com/TrailRunner-MF/Experimental)
这是一个非常简单的程序,只专注于vsct文件的本地化。
我试图仅本地化此MenuItem的按钮文本。为此,我复制了“ VsixLocalizeTrialPackage.vsct”文件并将其粘贴到西班牙语,日语和英语对应的vsct文件(VsixLocalizeTrialPackage.en-US.vsct,VsixLocalizeTrialPackage.es-ES.vsct,VsixLocalizeTrialPackage.ja-JP)。 vsct)。 我将TestCommand01Id的按钮文本更改为其相应语言的本机表达式。 然后,我在Visual Studio中关闭了该项目,由其他编辑器选择了csproj文件,并调整了VSCTCompile元素,添加了一个指向Menus.ctmenu的ResourceName元素,如下所示。
<ItemGroup>
<VSCTCompile Include="VsixLocalizeTrialPackage.vsct">
<ResourceName>Menus.ctmenu</ResourceName>
</VSCTCompile>
<VSCTCompile Include="VsixLocalizeTrialPackage.en-US.vsct">
<ResourceName>Menus.ctmenu</ResourceName>
</VSCTCompile>
<VSCTCompile Include="VsixLocalizeTrialPackage.es-ES.vsct">
<ResourceName>Menus.ctmenu</ResourceName>
</VSCTCompile>
<VSCTCompile Include="VsixLocalizeTrialPackage.ja-JP.vsct">
<ResourceName>Menus.ctmenu</ResourceName>
</VSCTCompile>
</ItemGroup>
我希望在实验的Visual Studio实例中,可以在“工具”菜单下方看到本地化的“调用TestCommand01”命令菜单, 调试开始时。
我可以看到未本地化的“ Invoke TestCommand01”菜单。
因此,根据https://docs.microsoft.com/en-us/visualstudio/extensibility/localizing-menu-commands?view=vs-2019中的建议,我将如下所示的条目添加到vsix的AssemblyInfo文件的底部。
[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
→[assembly: NeutralResourcesLanguage("es-ES", UltimateResourceFallbackLocation.Satellite)]
→[assembly: NeutralResourcesLanguage("ja-JP", UltimateResourceFallbackLocation.Satellite)]
我尝试过将软件包设置为默认语言。 当我对此进行设置时,令我惊讶的是,根本没有出现菜单“ Invoke TestCommand01”。(当我注释掉该行时,该菜单再次出现而没有本地化。)
对于解决此问题的任何建议,我将不胜感激,或者只是提示,或者是解决此困惑的示例。