本地化的菜单命令
若要了解有关 Visual Studio 2017 RC 的最新文档,请参阅 Visual Studio 2017 RC 文档。
你可以提供本地化的文本的菜单和工具栏创建本地化的.vsct 文件的命令和本地化的.resx 文件以及你的 VSPackage,然后更新项目文件的更改合并。
有关如何本地化安装体验的信息,请参阅本地化 VSIX 包。
在 Vspackage,菜单命令和工具栏按钮定义在.vsct 文件中。
-
在解决方案资源管理器,更改从.vsct 文件的名称filename到.vsct filename.en US.vsct。
-
制作一份filename.en US.vsct 为每个本地化语言。
将命名为每个副本filename。区域设置.vsct,其中区域设置是特定区域性名称。 区域性名称值的列表,请参阅由 Microsoft 分配的区域设置 Id。
这些filename。区域设置.vsct 文件将包含您的程序包的本地化的菜单文本。
-
打开每个filename。区域设置.vsct 文件将文本本地化。
-
修改ButtonText值为适合于特定语言元素。
-
如果您将为提供本地化的图标,修改位图值以指向目标文件。
下面的示例演示英语和西班牙语按钮文本命令,以打开家族树资源管理器工具窗口。
[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。区域设置.resx,其中区域设置是特定区域性名称。
-
将 Resources.resx 重命名为 Resources.en US.resx。
-
制作一份每种本地化语言的 Resources.en US.resx 文件。
将命名为每个副本的资源。区域设置.resx,其中区域设置是特定区域性名称。
-
打开每个.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)]
这将为默认语言设置美国英语。
-
卸载项目。
-
在编辑器中打开项目文件。
-
找到
ItemGroup
元素,其中包含EmbeddedResource
元素。 -
在
EmbeddedResource
调用 VSPackage.en-US.resx 的元素替换ManifestResourceName
具有元素LogicalName
元素,将设置为VSPackage.en-US.Resources
、,如下所示。<EmbeddedResource Include="VSPackage.en-US.resx"> <MergeWithCTO>true</MergeWithCTO> <LogicalName>VSPackage.en-US.Resources</LogicalName> </EmbeddedResource>
-
对于每种本地化语言复制
EmbeddedResource
VsPackage.en 美国和集元素包括属性和LogicalName元素复制到目标区域设置,如下面的示例中所示。 -
每个本地化
VSCTCompile
元素中,添加ResourceName
指向的元素Menus.ctmenu
,如在下面的示例所示。<ItemGroup> <VSCTCompile Include="LocalizedPackage.es-ES.vsct"> <ResourceName>Menus.ctmenu</ResourceName> </VSCTCompile> </ItemGroup>
-
保存项目文件并重新加载项目。
-
生成项目。
这将创建主程序集,并为每种语言的资源程序集。 本地化的部署过程的信息,请参阅本地化 VSIX 包