Lokalisieren von Menübefehlen
Sie können lokalisierten Text für Menü- und Symbolleistenbefehle bereitstellen, indem Sie lokalisierte VSCT-Dateien und lokalisierte RESX-Dateien für Ihr VSPackage erstellen und dann die Projektdateien aktualisieren, um die Änderungen zu integrieren.
Informationen zum Lokalisieren der Installationsumgebung finden Sie unter Lokalisieren von VSIX-Paketen.
Lokalisieren von Befehlsnamen
In VSPackages werden Menübefehle und Symbolleistenschaltflächen in der VSCT-Datei definiert.
Ändern Sie in Projektmappen-Explorer den Namen der VSCT-Datei von "filename.vsct" in "filename.en-US.vsct".
Erstellen Sie eine Kopie von "filename.en-US.vsct " für jede lokalisierte Sprache.
Geben Sie jedem Kopierdateinamen einen Namen.{ Locale}.vsct, wobei {Locale} ein bestimmter Kulturname ist. Eine Liste mit Kulturnamenwerten finden Sie unter Gebietsschema-IDs, die von Microsoft zugewiesen wurden.
Dieser Dateiname. Locale.vsct-Dateien enthalten den lokalisierten Menütext für Ihr Paket.
Öffnen Sie jeden Dateinamen. Datei "Locale.vsct ", um den Text zu lokalisieren.
Ändern Sie die ButtonText-Elementwerte entsprechend der jeweiligen Sprache.
Wenn Sie lokalisierte Symbole bereitstellen, ändern Sie die Bitmapwerte so, dass sie auf die Zieldateien zeigen.
Das folgende Beispiel zeigt den Text der englischen und spanischen Schaltfläche für einen Befehl zum Öffnen eines Toolfensters für den Familienstruktur-Explorer.
[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>
Lokalisieren anderer Textressourcen
Andere Textressourcen als Befehlsnamen werden in Ressourcendateien (RESX) definiert.
Benennen Sie VSPackage.resx in VSPackage.en-US.resx um.
Erstellen Sie eine Kopie der VSPackage.en-US.resx-Datei für jede lokalisierte Sprache.
Benennen Sie jede Kopie VSPackage.{ Locale}.resx, wobei {Locale} ein bestimmter Kulturname ist.
Benennen Sie "Resources.resx" in "Resources.en-US.resx" um.
Erstellen Sie eine Kopie der Datei "Resources.en-US.resx " für jede lokalisierte Sprache.
Benennen Sie jede Kopie "Resources".{ Locale}.resx, wobei {Locale} ein bestimmter Kulturname ist.
Öffnen Sie jede RESX-Datei , um die Zeichenfolgenwerte entsprechend der jeweiligen Sprache und Kultur zu ändern. Das folgende Beispiel zeigt die lokalisierte Ressourcendefinition für die Titelleiste eines Toolfensters.
[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>
Integrieren lokalisierter Ressourcen in das Projekt
Sie müssen die Datei "assemblyinfo.cs " und die Projektdatei ändern, um die lokalisierten Ressourcen zu integrieren.
Öffnen Sie im Editor über den Knoten "Eigenschaften" in Projektmappen-Explorer "assemblyinfo.cs" oder "assemblyinfo.vb".
Fügen Sie den folgenden Eintrag hinzu.
[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
Dadurch wird US-Englisch als Standardsprache festgelegt.
Entladen Sie das Projekt.
Öffnen Sie die Projektdatei im Editor.
Fügen Sie im Stammelement
Project
einPropertyGroup
Element mit einemUICulture
Element hinzu, das Ihrer Standardsprache entspricht.<PropertyGroup> <UICulture>en-US</UICulture> </PropertyGroup>
Dadurch wird US-Englisch als Standard-UI-Kultur für Windows Presentation Foundation (WPF)-Steuerelemente festgelegt.
Suchen Sie das
ItemGroup
Element, das Elemente enthältEmbeddedResource
.Ersetzen Sie im
EmbeddedResource
Element, das VSPackage.en-US.resx aufruft, dasManifestResourceName
Element durch einLogicalName
Element, das wie folgt festgelegtVSPackage.en-US.Resources
ist:<EmbeddedResource Include="VSPackage.en-US.resx"> <MergeWithCTO>true</MergeWithCTO> <LogicalName>VSPackage.en-US.Resources</LogicalName> </EmbeddedResource>
Kopieren Sie das
EmbeddedResource
Element fürVsPackage.en-US
jede lokalisierte Sprache, und legen Sie das Include-Attribut und das LogicalName-Element der Kopie auf das Zielgebietsschema fest.Fügen Sie jedem lokalisierten
VSCTCompile
Element einResourceName
Element hinzu, aufMenus.ctmenu
das verweist, wie im folgenden Beispiel gezeigt:<ItemGroup> <VSCTCompile Include="LocalizedPackage.es-ES.vsct"> <ResourceName>Menus.ctmenu</ResourceName> </VSCTCompile> </ItemGroup>
Speichern Sie die Projektdatei, und laden Sie das Projekt neu.
Erstellen Sie das Projekt.
Dadurch wird eine Standard Assembly und Ressourcenassemblys für jede Sprache erstellt. Informationen zum Lokalisieren des Bereitstellungsprozesses finden Sie unter Lokalisieren von VSIX-Paketen