Localiser les commandes de menu
Vous pouvez fournir du texte localisé pour les commandes de menu et de barre d’outils en créant des fichiers .vsct localisés et des fichiers .resx localisés pour votre VSPackage, puis en mettant à jour les fichiers projet pour incorporer les modifications.
Pour plus d’informations sur la localisation de l’expérience d’installation, consultez Localiser les packages VSIX.
Localiser les noms de commandes
Dans vsPackages, les commandes de menu et les boutons de barre d’outils sont définis dans le fichier .vsct .
Dans Explorateur de solutions, remplacez le nom du fichier .vsct de filename.vsct par filename.en-US.vsct.
Effectuez une copie de filename.en-US.vsct pour chaque langue localisée.
Nommez chaque nom de fichier de copie .{ Locale}.vsct, où {Locale} est un nom de culture particulier. Pour obtenir la liste des valeurs de nom de culture, consultez les ID de paramètres régionaux attribués par Microsoft.
Ce nom de fichier. Les fichiers Locale.vsct contiennent le texte du menu localisé de votre package.
Ouvrez chaque nom de fichier. Fichier Locale.vsct pour localiser le texte.
Modifiez les valeurs d’élément ButtonText en fonction de la langue particulière.
Si vous fournissez des icônes localisées, modifiez les valeurs Bitmap pour qu’elles pointent vers les fichiers cibles.
L’exemple suivant montre le texte du bouton anglais et espagnol d’une commande pour ouvrir une fenêtre d’outil Explorateur d’arborescences familiales.
[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>
Localiser d’autres ressources de texte
Les ressources texte autres que les noms de commandes sont définies dans les fichiers resource (.resx).
Renommez VSPackage.resx en VSPackage.en-US.resx.
Effectuez une copie du fichier VSPackage.en-US.resx pour chaque langue localisée.
Nommez chaque copie VSPackage.{ Locale}.resx, où {Locale} est un nom de culture particulier.
Renommez Resources.resx en Resources.en-US.resx.
Effectuez une copie du fichier Resources.en-US.resx pour chaque langue localisée.
Nommez chaque ressource de copie .{ Locale}.resx, où {Locale} est un nom de culture particulier.
Ouvrez chaque fichier .resx pour modifier les valeurs de chaîne en fonction de la langue et de la culture particulières. L’exemple suivant montre la définition de ressource localisée pour la barre de titre d’une fenêtre d’outil.
[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>
Incorporer des ressources localisées dans le projet
Vous devez modifier le fichier assemblyinfo.cs et le fichier projet pour incorporer les ressources localisées.
À partir du nœud Propriétés dans Explorateur de solutions, ouvrez assemblyinfo.cs ou assemblyinfo.vb dans l’éditeur.
Ajoutez l’entrée suivante.
[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
Cela définit l’anglais américain comme langue par défaut.
Déchargez le projet.
Ouvrez le fichier projet dans l’éditeur.
Dans l’élément racine
Project
, ajoutez unPropertyGroup
élément avec unUICulture
élément qui correspond à votre langue par défaut.<PropertyGroup> <UICulture>en-US</UICulture> </PropertyGroup>
Cela définit l’anglais américain comme culture d’interface utilisateur par défaut pour les contrôles WPF (Windows Presentation Foundation).
Recherchez l’élément
ItemGroup
qui contient desEmbeddedResource
éléments.Dans l’élément
EmbeddedResource
qui appelle VSPackage.en-US.resx, remplacez l’élémentManifestResourceName
par unLogicalName
élément définiVSPackage.en-US.Resources
sur , comme suit :<EmbeddedResource Include="VSPackage.en-US.resx"> <MergeWithCTO>true</MergeWithCTO> <LogicalName>VSPackage.en-US.Resources</LogicalName> </EmbeddedResource>
Pour chaque langue localisée, copiez l’élément
EmbeddedResource
pourVsPackage.en-US
, puis définissez l’attribut Include et l’élément LogicalName de la copie sur les paramètres régionaux cibles.Pour chaque élément localisé
VSCTCompile
, ajoutez unResourceName
élément qui pointe versMenus.ctmenu
, comme illustré dans l’exemple suivant :<ItemGroup> <VSCTCompile Include="LocalizedPackage.es-ES.vsct"> <ResourceName>Menus.ctmenu</ResourceName> </VSCTCompile> </ItemGroup>
Enregistrez le fichier projet et rechargez le projet.
Créez le projet.
Cela crée un assembly principal et des assemblys de ressources pour chaque langage. Pour plus d’informations sur la localisation du processus de déploiement, consultez Localiser les packages VSIX