Localizar comandos de menu
Você pode fornecer texto localizado para comandos de menu e barra de ferramentas criando arquivos .vsct localizados e arquivos .resx localizados para o VSPackage e, em seguida, atualizando os arquivos de projeto para incorporar as alterações.
Para obter informações sobre como localizar a experiência de instalação, consulte Localizar pacotes VSIX.
Localizar nomes de comando
No VSPackages, os comandos de menu e os botões da barra de ferramentas são definidos no arquivo .vsct .
No Gerenciador de Soluções, altere o nome do arquivo .vsct de filename.vsct para filename.en-US.vsct.
Faça uma cópia de filename.en-US.vsct para cada idioma localizado.
Nomeie cada nome de arquivo de cópia .{ Locale}.vsct, onde {Locale} é um nome de cultura específico. Para obter uma lista de valores de nome de cultura, consulte IDs de localidade atribuídas pela Microsoft.
Esses nomes de arquivo. Os arquivos Locale.vsct conterão o texto de menu localizado para seu pacote.
Abra cada nome de arquivo. Locale.vsct para localizar o texto.
Modifique os valores do elemento ButtonText conforme apropriado para o idioma específico.
Se você fornecer ícones localizados, modifique os valores de Bitmap para apontar para os arquivos de destino.
O exemplo a seguir mostra o texto do botão inglês e espanhol de um comando para abrir uma janela da ferramenta Family Tree Explorer.
[FamilyTree.pt-BR.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>
[Árvore Familiar.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>
Localizar outros recursos de texto
Recursos de texto diferentes de nomes de comando são definidos em arquivos de recurso (.resx).
Renomeie VSPackage.resx para VSPackage.en-US.resx.
Faça uma cópia do arquivo VSPackage.en-US.resx para cada idioma localizado.
Nomeie cada cópia VSPackage.{ Locale}.resx, onde {Locale} é um nome de cultura específico.
Renomeie Resources.resx para Resources.en-US.resx.
Faça uma cópia do arquivo Resources.en-US.resx para cada idioma localizado.
Nomeie cada cópia como Recursos.{ Locale}.resx, onde {Locale} é um nome de cultura específico.
Abra cada arquivo .resx para modificar os valores de cadeia de caracteres conforme apropriado para o idioma e a cultura específicos. O exemplo a seguir mostra a definição de recurso localizado para a barra de título de uma janela de ferramenta.
[Resources.pt-BR.resx]
<data name="ToolWindowTitle" xml:space="preserve"> <value>Family Tree Explorer</value> </data>
[Recursos.es-ES.resx]
<data name="ToolWindowTitle" xml:space="preserve"> <value>Explorador del arbol genealogico</value> </data>
Incorporar recursos localizados ao projeto
Você deve modificar o arquivo assemblyinfo.cs e o arquivo de projeto para incorporar os recursos localizados.
No nó Propriedades no Gerenciador de Soluções, abra assemblyinfo.cs ou assemblyinfo.vb no editor.
Adicione a seguinte entrada.
[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
Isso define o inglês dos EUA como o idioma padrão.
Descarregue o projeto.
Abra o arquivo de projeto no editor.
No elemento raiz
Project
, adicione um elemento com umPropertyGroup
UICulture
elemento que corresponda ao seu idioma padrão.<PropertyGroup> <UICulture>en-US</UICulture> </PropertyGroup>
Isso define o inglês dos EUA como a cultura de interface do usuário padrão para controles do Windows Presentation Foundation (WPF).
Localize o
ItemGroup
elemento que contémEmbeddedResource
elementos .EmbeddedResource
No elemento que chama VSPackage.en-US.resx, substitua oManifestResourceName
elemento por umLogicalName
elemento definido comoVSPackage.en-US.Resources
, da seguinte maneira:<EmbeddedResource Include="VSPackage.en-US.resx"> <MergeWithCTO>true</MergeWithCTO> <LogicalName>VSPackage.en-US.Resources</LogicalName> </EmbeddedResource>
Para cada idioma localizado, copie o elemento para e defina o
EmbeddedResource
atributo Include e o elemento LogicalName da cópia paraVsPackage.en-US
a localidade de destino.Para cada elemento localizado
VSCTCompile
, adicione umResourceName
elemento que aponte paraMenus.ctmenu
, conforme mostrado no exemplo a seguir:<ItemGroup> <VSCTCompile Include="LocalizedPackage.es-ES.vsct"> <ResourceName>Menus.ctmenu</ResourceName> </VSCTCompile> </ItemGroup>
Salve o arquivo de projeto e recarregue o projeto.
Compile o projeto.
Isso cria um assembly principal e assemblies de recursos para cada idioma. Para obter informações sobre como localizar o processo de implantação, consulte Localizar pacotes VSIX