2.10 本地化的菜单命令

来源:互联网 发布:机械设计三维图软件 编辑:程序博客网 时间:2024/06/03 17:50

本地化的菜单命令

Visual Studio 2015
其他版本
 

若要了解有关 Visual Studio 2017 RC 的最新文档,请参阅 Visual Studio 2017 RC 文档。

你可以提供本地化的文本的菜单和工具栏创建本地化的.vsct 文件的命令和本地化的.resx 文件以及你的 VSPackage,然后更新项目文件的更改合并。

有关如何本地化安装体验的信息,请参阅本地化 VSIX 包。

本地化命令名称

在 Vspackage,菜单命令和工具栏按钮定义在.vsct 文件中。

  1. 解决方案资源管理器,更改从.vsct 文件的名称filename到.vsct filename.en US.vsct。

  2. 制作一份filename.en US.vsct 为每个本地化语言。

    将命名为每个副本filename区域设置.vsct,其中区域设置是特定区域性名称。 区域性名称值的列表,请参阅由 Microsoft 分配的区域设置 Id。

    这些filename区域设置.vsct 文件将包含您的程序包的本地化的菜单文本。

  3. 打开每个filename区域设置.vsct 文件将文本本地化。

    1. 修改ButtonText值为适合于特定语言元素。

    2. 如果您将为提供本地化的图标,修改位图值以指向目标文件。

    下面的示例演示英语和西班牙语按钮文本命令,以打开家族树资源管理器工具窗口。

    [FamilyTree.en US.vsct]

    XML
    <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]

    XML
    <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) 文件中定义了文本资源而不是命令名称。

  1. 将 VSPackage.resx 重命名为 VSPackage.en US.resx。

  2. 制作一份每种本地化语言的 VSPackage.en US.resx 文件。

    将命名为每个副本 VSPackage。区域设置.resx,其中区域设置是特定区域性名称。

  3. 将 Resources.resx 重命名为 Resources.en US.resx。

  4. 制作一份每种本地化语言的 Resources.en US.resx 文件。

    将命名为每个副本的资源。区域设置.resx,其中区域设置是特定区域性名称。

  5. 打开每个.resx 文件修改为适合特定的语言和区域性的字符串值。 下面的示例演示一个工具窗口的标题栏的本地化的资源定义。

    [Resources.en US.resx]

    XML
    <data name="ToolWindowTitle" xml:space="preserve">    <value>Family Tree Explorer</value>  </data>  

    [Resources.es ES.resx]

    XML
    <data name="ToolWindowTitle" xml:space="preserve">    <value>Explorador del arbol genealogico</value>  </data>  

将本地化的资源合并到项目

您必须修改 assemblyinfo.cs 文件和项目文件以合并本地化的资源。

  1. 属性中的节点解决方案资源管理器,在编辑器中打开 assemblyinfo.cs 或 assemblyinfo.vb。

  2. 添加以下一项。

    C#
    [assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]  

    这将为默认语言设置美国英语。

  3. 卸载项目。

  4. 在编辑器中打开项目文件。

  5. 找到ItemGroup元素,其中包含EmbeddedResource元素。

  6. EmbeddedResource调用 VSPackage.en-US.resx 的元素替换ManifestResourceName具有元素LogicalName元素,将设置为VSPackage.en-US.Resources、,如下所示。

    XML
    <EmbeddedResource Include="VSPackage.en-US.resx">    <MergeWithCTO>true</MergeWithCTO>    <LogicalName>VSPackage.en-US.Resources</LogicalName>  </EmbeddedResource>  
  7. 对于每种本地化语言复制EmbeddedResourceVsPackage.en 美国和集元素包括属性和LogicalName元素复制到目标区域设置,如下面的示例中所示。

  8. 每个本地化VSCTCompile元素中,添加ResourceName指向的元素Menus.ctmenu,如在下面的示例所示。

    XML
    <ItemGroup>    <VSCTCompile Include="LocalizedPackage.es-ES.vsct">      <ResourceName>Menus.ctmenu</ResourceName>    </VSCTCompile>  </ItemGroup>  
  9. 保存项目文件并重新加载项目。

  10. 生成项目。

    这将创建主程序集,并为每种语言的资源程序集。 本地化的部署过程的信息,请参阅本地化 VSIX 包

原创粉丝点击