Freigeben über


Exemplarische Vorgehensweise: Lokalisieren von Spalten, Inhaltstypen und Listen

Letzte Änderung: Dienstag, 7. Dezember 2010

Gilt für: SharePoint Foundation 2010

Inhalt dieses Artikels
Szenario
Erstellen eines SharePoint-Projekts
Erstellen eines Features mit Websitesammlungsbereich
Hinzufügen globaler Ressourcen zum Projekt
Erstellen von Websitespalten, eines Inhaltstyps und einer Listendefinition
Erstellen eines Features zum Bereitstellen einer Listeninstanz
Hinzufügen von Featureressourcen
Testen des Projekts

In dieser exemplarischen Vorgehensweise wird gezeigt, wie Sie Lokalisierungsressourcen für die von Ihnen erstellten und bereitgestellten Spalten, Inhaltstypen und Listen verfügbar machen und nutzen. Die folgenden Aufgaben werden in dieser exemplarischen Vorgehensweise veranschaulicht:

  • Verwenden von Ressourcenausdrücken in XML-Definitionen für Spalten, Inhaltstypen und Listen.

  • Bereitstellen von Lokalisierungsressourcen speziell für ein bestimmtes Feature.

  • Bereitstellen von Lokalisierungsressourcen, die von vielen Features gemeinsam genutzt werden können.

Voraussetzungen

Informationen zu den allgemeinen Anforderungen finden Sie unter Anforderungen für die Entwicklung von SharePoint-Lösungen. Darüber hinaus gelten zum Ausführen dieser exemplarischen Vorgehensweise die folgenden speziellen Anforderungen:

Szenario

In dieser exemplarischen Vorgehensweise erstellen Sie in Microsoft Visual Studio 2010 das SharePoint-Projekt WingtipReports. Dieses Projekt enthält zwei Features. Zum einen ein Feature mit Websitebereich, sodass es für eine komplette Websitesammlung aktiviert werden kann, und zum anderen ein Feature mit Webbereich, sodass es für einzelne Websites in der Websitesammlung aktiviert werden kann.

Mit dem ersten Feature werden der Websitesammlung mehrere neue Elemente hinzugefügt, darunter auch mehrerer benutzerdefinierte Websitespalten, der benutzerdefinierte Websiteinhaltstyp Weekly Status Report sowie die benutzerdefinierte Listenvorlage Weekly Status Reports. Alle diese Elemente werden lokalisiert, indem hartcodierte Zeichenfolge durch Microsoft ASP.NET-Ressourcenausdrücke ersetzt werden, mit denen lokalisierte Zeichenfolgenwerte aus Sprachressourcendateien (RESX) abgerufen werden. Die Sprachressourcendateien werden als globale Ressourcen installiert, damit sie von anderen Features gemeinsam genutzt werden können, die von Entwicklern bei Wingtip in separaten Bereitstellungen erstellt wurden.

Von einem zweiten Feature mit Webbereich wird eine Instanz der Liste Weekly Status Reports bereitgestellt. Ein Großteil des angezeigten Textes für diese Listeninstanz stammt aus den Websitespalten und den Websiteinhaltstypen, die bei der Aktivierung des ersten Features verfügbar gemacht werden. (Deshalb wird das zweite Feature mit einer Aktivierungsabhängigkeit vom ersten Feature definiert.) Die Listeninstanz verfügt jedoch über einen eigenen Titel und eine eigene Beschreibung, und dieser Text wird durch Abrufen von Übersetzungen aus anderen Ressourcendateien lokalisiert. Da mit diesen Ressourcen nur eine einzelne Listeninstanz lokalisiert wird, werden sie als lokale Ressourcen installiert, die nur für das Feature verfügbar sind, von dem diese installiert werden.

Erstellen eines SharePoint-Projekts

Erstellen Sie zunächst ein SharePoint-Projekt in Visual Studio 2010, und benennen Sie es WingtipReports.

So erstellen Sie ein SharePoint-Projekt

  1. Starten Sie Visual Studio 2010 als Administrator.

  2. Zeigen Sie das Dialogfeld Neues Projekt an, indem Sie im Menü Datei auf Neu zeigen und dann auf Neues Projekt klicken.

  3. Erweitern Sie den Knoten SharePoint unter Visual C# oder Visual Basic, und klicken Sie dann auf 2010.

  4. Klicken Sie im Bereich Vorlagen auf Leeres SharePoint-Projekt, ändern Sie den Namen des Projekts in WingtipReports, und klicken Sie dann auf OK.

    Der Assistent zum Anpassen von SharePoint wird geöffnet.

  5. Geben Sie auf der Seite Site und Sicherheitsebene für Debugging angeben die URL für die SharePoint-Website ein, der Sie das neue benutzerdefinierte Feldelement hinzufügen möchten, oder verwenden Sie den Standardspeicherort (http://< Systemname>/).

  6. Wählen Sie im Abschnitt Wie lautet die Vertrauensebene für diese SharePoint-Lösung? die Option Als Farmlösung bereitstellen aus.

  7. Klicken Sie auf Fertig stellen.

    Das Projekt wird im Projektmappen-Explorer angezeigt.

  8. Klicken Sie im Projektmappen-Explorer auf den Projektknoten, und drücken Sie F4.

    Das Fenster Eigenschaften wird geöffnet.

  9. Legen Sie die Eigenschaft Assembly in Paket einschließen auf False fest.

    Für das Projekt gibt es keinen Code und es muss keine Assembly bereitgestellt werden.

  10. Drücken Sie STRG+UMSCHALT+S, um alles zu speichern.

Erstellen eines Features mit Websitesammlungsbereich

Als erstes wichtiges Element müssen Sie diesem Projekt ein Feature hinzufügen, mit dem XML-Definitionen für Websitespalten, ein Websiteinhaltstyp und eine Listenvorlage zusätzlich zu Lokalisierungsressourcen zur Unterstützung dieser Elemente bereitgestellt werden können. Dieses Feature hat Websitesammlungsbereich, sodass die vom Feature bereitgestellten Elemente für alle Websites in der Websitesammlung verfügbar sind.

So erstellen Sie ein Feature mit Websitesammlungsbereich

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Ordner Features, und klicken Sie auf Funktion hinzufügen.

    Der Ordner Feature1 wird hinzugefügt und der Feature-Designer wird geöffnet.

  2. Klicken Sie mit der rechten Maustaste auf den Ordner Feature1, wählen Sie Umbenennen aus, und geben Sie WeeklyStatusReport ein.

  3. Ersetzen Sie im Feature-Designer den für das Feld Titel automatisch generierten Wert durch die folgende Zeichenfolge:

    $Resources:WeeklyStatusFeature
    

    Bei dieser Zeichenfolge handelt es sich um einen ASP.NET-Ausdruck. Das Dollarzeichen ($) weist darauf hin, dass ein Ausdruck folgt. Mit dem Präfix Resources wird der Ausdruckstyp angegeben. Das Suffix nach dem Doppelpunkt (:) ist der Ausdruckswert, der aufgelöst wird. In diesem Fall ist WeeklyStatusFeature der Name eines Schlüssels in einer Ressourcendatei. Der Ausdruck wird von SharePoint Foundation ausgewertet und durch den lokalisierten Wert aus der Ressourcendatei ersetzt. Später werden Sie in dieser exemplarischen Vorgehensweise eine Ressourcendatei erstellen, die das richtige Schlüssel/Wert-Paar enthält.

    Eventuell werden Ressourcenausdrücke wie der Folgende angezeigt:

    $Resources:wingtip,WeeklyStatusFeature
    

    Der Wert vor dem Komma (,) gibt einen Basisdateinamen für die Ressourcendatei an, nämlich wingtip. Sie könnten dieselbe Syntax für den Ressourcenausdruck in diesem Schritt verwenden, aber in Schritt 8 legen Sie eine Eigenschaft fest, durch die die Angabe eines Basisdateinamens überflüssig wird.

  4. Fügen Sie im Feld Beschreibung die folgende Zeichenfolge ein:

    $Resources:WeeklyStatusFeatureDesc
    
  5. Klicken Sie in der Liste Bereich auf Website.

  6. Falls das Fenster Paket-Explorer nicht geöffnet ist, zeigen Sie im Menü Datei auf Weitere Fenster, und klicken Sie dann auf Paket-Explorer.

  7. Klicken Sie im Paket-Explorer auf den Knoten für $Resources:WeeklyStatusFeature, und drücken Sie F4, um das Fenster Eigenschaften anzuzeigen.

  8. Legen Sie im Fenster Eigenschaften den Wert der Standardressourcendatei-Eigenschaft auf wingtip fest.

  9. Ändern Sie den Wert der Bereitstellungspfad-Eigenschaft in WingtipReports.

  10. Drücken Sie STRG+UMSCHALT+S, um alles zu speichern.

Hinzufügen globaler Ressourcen zum Projekt

Im nächsten Schritt fügen Sie der SharePoint-Lösung Lokalisierungsressourcendateien hinzu. Die in diesem Schritt hinzugefügten Dateien werden als globale Ressourcen bereitgestellt. Globale Ressourcen werden im Ordner %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\Resources auf allen Servern in der Farm installiert, wo sie von vielen Features gemeinsam genutzt werden können, einschließlich Features, die von anderen Benutzern bereitgestellt werden. Bei dieser exemplarischen Vorgehensweise wird davon ausgegangen, dass Sie die Websitespalten und Inhaltstypen, die Sie jetzt erstellen, in anderen Features verwenden möchten, die Sie in zukünftigen Projekten entwickeln werden.

In dieser Phase des Projekts erstellen Sie zwei Ressourcendateien. Zunächst erstellen Sie eine Ressourcendatei zur Unterstützung der Standardsprache der Website. Anschließend erstellen Sie eine zweite Ressourcendatei für eine der von der Website unterstützten alternativen Sprachen. In einer Produktionsumgebung können Sie viele andere sprachspezifische Ressourcendateien erstellen und bereitstellen.

So fügen Sie globale Ressourcendateien hinzu

  1. Klicken Sie im Projektmappen-Explorer auf den Projektknoten. Klicken Sie dann im Menü Projekt auf Zugeordneten SharePoint-Ordner hinzufügen.

  2. Wählen Sie im Dialogfeld Zugeordneten SharePoint-Ordner hinzufügen die Option Ressourcen aus, und klicken Sie auf OK.

    Dem Projekt wird ein Ressourcenordner hinzugefügt. Überprüfen Sie die Eigenschaften dieses Ordners. Beachten Sie, dass die DeploymentLocation-Eigenschaft auf {SharePointRoot}\Resources festgelegt ist.

  3. Wählen Sie im Projektmappen-Explorer den Ordner Ressourcen aus. Klicken Sie im Menü Projekt auf Neues Element hinzufügen.

  4. Erweitern Sie im Dialogfeld Neues Element hinzufügen den Knoten Visual C#, falls Sie C# als Entwicklungssprache verwenden, oder den Knoten Gemeinsame Elemente, falls Sie in Visual Basic arbeiten. Wählen Sie Allgemein aus. Wählen Sie im Vorlagenbereich die Option Ressourcendatei aus. Benennen Sie die Datei Wingtip.resx, und klicken Sie dann auf Hinzufügen.

    Die Ressourcendatei wird dem Projekt hinzugefügt und im Editor für verwaltete Ressourcen geöffnet.

    TippTipp

    Beim Bereitstellen von Dateien im globalen Ressourcenordner empfiehlt es sich, eindeutige Dateinamen auszuwählen, um Namenskonflikte mit Ressourcen zu vermeiden, die von anderen Anwendungen bereitgestellt werden. Eine Konvention besteht darin, dem Dateinamen Ihren Firmennamen als Präfix voranzustellen. Wenn beispielsweise Ihr Unternehmen "Wingtip Toys" heißt, können die Namen der von Ihnen bereitgestellten Ressourcendateien alle mit "Wingtip" beginnen.

  5. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die soeben erstellte Ressourcendatei, und wählen Sie Öffnen mit aus.

  6. Wählen Sie im Dialogfeld Öffnen mit unter Programm zum Öffnen dieser Datei auswählen die Option XML (Text)-Editor aus. Klicken Sie anschließend auf OK.

    Die Ressource wird im XML-Editor geöffnet.

  7. Verschieben Sie im XML-Editor den Fensterinhalt an das Ende der Datei, und fügen Sie direkt über dem letzten </root>-Tag eine leere Zeile ein. Platzieren Sie die Einfügemarke in der leeren Zeile, und fügen Sie das folgende XML in die Datei ein.

    <data name="Accomplishments" xml:space="preserve">
        <value>Accomplishments (invariant)</value>
      </data>
      <data name="BlockingIssues" xml:space="preserve">
        <value>Blocking Issues (invariant)</value>
      </data>
      <data name="Direction" xml:space="preserve">
        <value>LTR</value>
        <comment>Can be LTR, RTL, or none</comment>
      </data>
      <data name="FromDate" xml:space="preserve">
        <value>From (invariant)</value>
      </data>
      <data name="PlanForNextWeek" xml:space="preserve">
        <value>Plan For Next Week (invariant)</value>
      </data>
      <data name="SubmittedBy" xml:space="preserve">
        <value>Submitted By (invariant)</value>
      </data>
      <data name="ToDate" xml:space="preserve">
        <value>To (invariant)</value>
      </data>
      <data name="WeeklyStatusFeature" xml:space="preserve">
        <value>Weekly Status Reports (invariant)</value>
      </data>
      <data name="WeeklyStatusFeatureDesc" xml:space="preserve">
        <value>Provides support for weekly status report lists. (invariant)</value>
      </data>
      <data name="WeeklyStatusListTemplate" xml:space="preserve">
        <value>Weekly Status Reports List (invariant)</value>
      </data>
      <data name="WeeklyStatusListTemplateDesc" xml:space="preserve">
        <value>A list of weekly progress reports. (invariant)</value>
      </data>
      <data name="WeeklyStatusReportCT" xml:space="preserve">
        <value>Weekly Status Report (invariant)</value>
      </data>
      <data name="WeeklyStatusReportCTDesc" xml:space="preserve">
        <value>Add a new weekly status report. (invariant)</value>
      </data>
    
  8. Drücken Sie STRG+S, um die Datei zu speichern. Klicken Sie dann im Menü Datei auf Schließen, um die Datei zu schließen.

  9. Wählen Sie im Projektmappen-Explorer die Datei Wingtip.resx aus. Klicken Sie im Menü Bearbeiten auf Kopieren, und klicken Sie dann auf Einfügen.

    Eine Datei mit dem Namen Kopie von Wingtip.resx wird dem Ordner Ressourcen hinzugefügt.

  10. Klicken Sie mit der rechten Maustaste auf die Datei Kopie von Wingtip.resx, und klicken Sie dann auf Umbenennen. Benennen Sie die Datei in Wingtip.Sprache-LAND/REGION.resx um. Dabei ist Sprache ein aus zwei Buchstaben bestehender Code für die Standardsprache Ihrer Website, und LAND/REGION ist ein aus zwei Buchstaben bestehender Code für die Subkultur.

    Wenn beispielsweise die Standardsprache Englisch (USA) ist, heißt die Ressourcendatei Wingtip.en-US.resx.

    Weitere Informationen zu Sprachen-IDs finden Sie im Thema zur System.Globalization.CultureInfo-Klasse.

    Wichtiger HinweisWichtig

    In Ressourcenausdrücken wird mithilfe des Basisdateinamens, wie z. B. Wingtip, auf eine Ressourcendatei verwiesen. Wenn von SharePoint Foundation ein Ressourcenwert abgerufen wird, wird nach einer Ressourcendatei gesucht, die diesen Basisdateinamen gefolgt von einer Sprachen-ID, die dem Wert der CurrentUICulture-Eigenschaft des aktuell ausgeführt Threads entspricht, aufweist. SharePoint Foundation sucht nach einer genauen Übereinstimmung. Wenn beispielsweise die Sprachen-ID im aktuellen Thread "pt-BR" lautet, sucht SharePoint Foundation nach einer Ressourcendatei mit dem Namen Basisdateiname.pt-BR.resx. Dateien mit derselben Sprachen-ID, aber einer unterschiedlichen Subkultur, wie z. B. Basisdateiname.pt.resx und Basisdateiname.pt-PT.resx, werden ignoriert.

    Falls SharePoint Foundation keine Ressourcendatei findet, die mit der Sprachen-ID im aktuell ausgeführten Thread übereinstimmt, wird nach einer Fallback-Ressourcendatei gesucht. Die erste Wahl als Fallback ist eine Ressourcendatei für die invariante Kultur, d. h., eine Ressourcendatei ohne Sprachen-ID am Ende des Dateinamens. Beispielsweise ist Wingtip.resx im aktuellen Projekt die Ressourcendatei für die invariante Kultur. Falls SharePoint Foundation keine Ressourcendatei für die invariante Kultur findet, wird versucht auf die Standardsprache auszuweichen. Für den Fall, dass keine Ressourcendatei für die Standardsprache gefunden wird, wird der Ressourcenname angezeigt.

  11. Wiederholen Sie die Schritte 9 und 10, aber fügen Sie dieses Mal den kulturspezifischen Bezeichner für eine alternative Sprache an, die in Ihrer Website aktiviert ist.

  12. Öffnen Sie die beiden soeben erstellten kulturspezifischen Sprachressourcendateien, und ersetzen Sie das Wort "invariant" durch die Sprachen-ID für die Datei. In der Datei Wingtip.en-US.resx wird beispielsweise Accomplishments (invariant) zu Accomplishments (en-US).

    Für diese exemplarische Vorgehensweise müssen keine Zeichenfolgenwerte übersetzt werden. Vielmehr sollte es ausreichen, eine Sprachen-ID an eine unübersetzte Zeichenfolge anzufügen. Beim Testen des Webparts gibt die Sprachen-ID die angezeigte Sprache an.

  13. Drücken Sie STRG+UMSCHALT+S, um alles zu speichern.

Erstellen von Websitespalten, eines Inhaltstyps und einer Listendefinition

Nun ist es an der Zeit, die soeben erstellten globalen Ressourcen zu nutzen. In dieser Phase des Projekts erstellen Sie mehrere benutzerdefinierte Websitespalten und definieren anschließend einen Inhaltstyp, von dem die Spalten verwendet werden. Schließlich erstellen Sie eine Listendefinition, die auf diesem Inhaltstyp basiert.

So erstellen Sie die Websitespalten, den Inhaltstyp und die Listendefinition

  1. Klicken Sie im Projektmappen-Explorer auf den Projektknoten. Klicken Sie dann im Menü Projekt auf Neues Element hinzufügen.

  2. Erweitern Sie den Knoten SharePoint unter Visual C# oder Visual Basic, und klicken Sie dann auf 2010.

  3. Klicken Sie im Bereich Vorlagen auf Leeres Element, ändern Sie den Namen des Elements in Fields, und klicken Sie dann auf Hinzufügen.

    Der Ordner Fields wird im Projektmappen-Explorer angezeigt. Der Ordner enthält die Datei Elements.xml.

  4. Öffnen Sie die Datei Elements.xml, falls Sie noch nicht im Editor geöffnet ist.

  5. Fügen Sie in der Datei Elements.xml die folgenden Felddefinitionen zwischen dem öffnenden <Elements>-Tag und dem schließenden </Elements>-Tag hinzu.

      <Field ID="{fcc46300-de6e-481e-ac2c-5bc369946712}"
             Name="SubmittedBy"
             DisplayName="$Resources:SubmittedBy"
             Type="User" List="UserInfo" ShowField="NameWithPicture"
             UserSelectionMode="PeopleOnly" UserSelectionScope="0"
             Required="TRUE" />
      <Field ID="{ab597cd8-5392-4c9a-bf99-51de026408d0}"
             Name="FromDate" 
             DisplayName="$Resources:FromDate"
             Type="DateTime" Format="DateOnly"
             Required="TRUE" >
        <Default>[today]</Default>
      </Field>
      <Field ID="{a69582b1-6756-40af-ab7a-7beab306afc9}"
             Name="ToDate" 
             DisplayName="$Resources:ToDate"
             Type="Calculated" Format="DateOnly" ResultType="DateTime" 
             ReadOnly="TRUE" Required="FALSE">
        <Formula>=StartDate+7</Formula>
        <FieldRefs>
          <FieldRef Name="FromDate"/>
        </FieldRefs>
      </Field>
      <Field ID="{3aaad916-127b-48ad-9c07-9b20d5c82aea}"
             Name="Accomplishments"
             DisplayName="$Resources:Accomplishments"
             Type="Note" NumLines="10" RichText="TRUE" RichTextMode="FullHtml"
             Required="TRUE"/>
      <Field ID="{300423a8-5cd6-43de-be09-58318aebe443}"
             Name="PlanForNextWeek"
             DisplayName="$Resources:PlanForNextWeek"
             Type="Note" NumLines="6" RichText="TRUE" RichTextMode="FullHtml"
             Required="FALSE" />   
      <Field ID="{a757c55d-85de-40ca-9cc9-b2ba31a0221d}"
             Name="BlockingIssues"
             DisplayName="$Resources:BlockingIssues"
             Type="Note" NumLines="4" RichText="TRUE" RichTextMode="FullHtml"
             Required="FALSE" />
    
  6. Drücken Sie STRG+S, um die Datei Elements.xml zu speichern, und schließen Sie die Datei anschließend.

  7. Klicken Sie im Projektmappen-Explorer auf den Projektknoten. Klicken Sie dann im Menü Projekt auf Neues Element hinzufügen.

  8. Klicken Sie im Bereich Vorlagen auf Inhaltstyp, ändern Sie den Namen des Elements in ContentTypes, und klicken Sie dann auf Hinzufügen.

  9. Wählen Sie im Assistenten zum Anpassen von SharePoint unter Von welchem Basisinhaltstyp soll dieser Inhaltstyp erben? die Option Element aus. Klicken Sie anschließend auf Fertig stellen.

    Der Ordner ContentTypes wird im Projektmappen-Explorer angezeigt. Der Ordner enthält eine weitere Datei Elements.xml.

  10. Löschen Sie in der neuen Datei Elements.xml den gesamten Inhalt zwischen dem öffnenden <Elements>-Tag und dem schließenden </Elements>-Tag. Fügen Sie anschließend die folgende Inhaltstypdefinition ein.

    <!-- Parent ContentType: Item (0x01) -->
      <ContentType ID="0x010013573845130047cdb90148d52e593cef"
                   Name="$Resources:WeeklyStatusReportCT"
                   Group="Custom Content Types"
                   Description="$Resources:WeeklyStatusReportCTDesc"
                   Inherits="TRUE"
                   Version="0">
        <FieldRefs>
          <FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" Required="TRUE" ShowInNewForm="TRUE" ShowInEditForm="TRUE"/>
          <FieldRef ID="{fcc46300-de6e-481e-ac2c-5bc369946712}" Name="SubmittedBy" Required="TRUE" ShowInNewForm="TRUE" ShowInEditForm="TRUE"/>
          <FieldRef ID="{ab597cd8-5392-4c9a-bf99-51de026408d0}" Name="FromDate" Required="TRUE" ShowInNewForm="TRUE" ShowInEditForm="TRUE"/>
          <FieldRef ID="{a69582b1-6756-40af-ab7a-7beab306afc9}" Name="ToDate" Required="FALSE" ShowInNewForm="FALSE" ShowInEditForm="FALSE"/>
          <FieldRef ID="{3aaad916-127b-48ad-9c07-9b20d5c82aea}" Name="Accomplishments" Required="TRUE" ShowInNewForm="TRUE" ShowInEditForm="TRUE"/>
          <FieldRef ID="{300423a8-5cd6-43de-be09-58318aebe443}" Name="PlanForNextWeek" Required="TRUE" ShowInNewForm="TRUE" ShowInEditForm="TRUE"/>
          <FieldRef ID="{a757c55d-85de-40ca-9cc9-b2ba31a0221d}" Name="BlockingIssues" Required="FALSE" ShowInNewForm="TRUE" ShowInEditForm="TRUE"/>
        </FieldRefs>
      </ContentType>
    
  11. Drücken Sie STRG+S, um die Datei Elements.xml zu speichern, und schließen Sie die Datei anschließend.

  12. Klicken Sie im Projektmappen-Explorer auf den Projektknoten. Klicken Sie dann im Menü Projekt auf Neues Element hinzufügen.

  13. Klicken Sie im Bereich Vorlagen auf Listendefinition von Inhaltstyp, ändern Sie den Namen des Elements in ListDefinitions, und klicken Sie dann auf Hinzufügen.

  14. Fügen Sie im Assistenten zum Anpassen von SharePoint unter Wie lautet der Anzeigename der Listendefinition? den folgenden Ressourcenausdruck ein:

    $Resources:WeeklyStatusListTemplate
    
  15. Stellen Sie sicher, dass Welcher Inhaltstyp soll für die Listendefinition verwendet werden? den Wert $Resources:WeeklyStatusReportCT (WingtipReports\ContentTypes) aufweist.

  16. Deaktivieren Sie das Kontrollkästchen Fügt eine Listeninstanz für diese Listendefinition hinzu, und klicken Sie anschließend auf Fertig stellen.

    Der Ordner ListDefinitions wird im Projektmappen-Explorer angezeigt. Der Ordner enthält eine weitere Datei Elements.xml sowie die Datei Schema.xml.

  17. Ersetzen Sie in der neuen Datei Elements.xml den Wert des Description-Attributs durch den folgenden Ressourcenausdruck:

    $Resources:WeeklyStatusListTemplateDesc"
    
  18. Drücken Sie STRG+S, um die Datei Elements.xml zu speichern, und schließen Sie die Datei anschließend.

  19. Doppelklicken Sie im Projektmappen-Explorer auf WeeklyStatusReport.feature, um das Feature im Feature-Designer zu öffnen.

  20. Überprüfen Sie im Feature-Designer, dass die Liste unter Elemente in der Funktion die folgenden Elemente enthält:

    • Resources

    • Fields

    • ContentTypes

    • ListDefinitions

  21. Klicken Sie auf Manifest (im unteren Bereich). Überprüfen Sie, dass das Manifest (mit Ausnahme des Werts für das Id-Attribut) mit dem folgenden XML identisch ist:

    <Feature xmlns="https://schemas.microsoft.com/sharepoint/" 
             DefaultResourceFile="wingtip" 
             Description="$Resources:WeeklyStatusFeatureDesc" 
             Id="e18a0885-083e-43f6-94fe-b6d378a2468c" 
             Scope="Site" 
             Title="$Resources:WeeklyStatusFeature">
      <ElementManifests>
        <ElementManifest Location="Resources\Elements.xml" />
        <ElementManifest Location="Fields\Elements.xml" />
        <ElementManifest Location="ContentTypes\Elements.xml" />
        <ElementManifest Location="ListDefinitions\Elements.xml" />
        <ElementFile Location="ListDefinitions\Schema.xml" />
      </ElementManifests>
    </Feature>
    

Erstellen eines Features zum Bereitstellen einer Listeninstanz

Im nächsten Schritt fügen Sie dem Projekt ein zweites Feature mit Websitebereich hinzu und fügen anschließend dem Feature die Definition für eine Listeninstanz hinzu. Sowohl das Feature-Element, mit dem das Feature definiert wird, als auch das ListInstance-Element, mit dem die Listeninstanz definiert wird, verwenden Ressourcenausdrücke für Schlüsselattribute. Zum Abschluss dieses Projekts erstellen Sie die Ressourcendateien, mit denen Werte für diese Ausdrücke bereitgestellt werden.

Dieses Feature hängt von Elementen ab, die vom ersten von Ihnen erstellten Feature bereitgestellt werden. Deshalb werden Sie eine Aktivierungsabhängigkeit für das neue Feature definieren. Es kann nur aktiviert werden, wenn das Feature, von dem es abhängt, zuerst aktiviert wird.

So erstellen Sie ein Feature, mit dem eine Listeninstanz bereitgestellt wird

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Ordner Features, und klicken Sie auf Funktion hinzufügen.

    Der Ordner Feature1 wird hinzugefügt und der Feature-Designer wird geöffnet.

  2. Klicken Sie mit der rechten Maustaste auf den Ordner Feature1, wählen Sie Umbenennen aus, und geben Sie WeeklyStatusList ein.

  3. Ersetzen Sie im Feature-Designer den für das Feld Titel automatisch generierten Wert durch die folgende Zeichenfolge:

    $Resources:WeeklyStatusListFeature
    
  4. Fügen Sie im Feld Beschreibung die folgende Zeichenfolge ein:

    $Resources:WeeklyStatusListFeatureDesc
    
  5. Überprüfen Sie, dass die Liste Bereich den Wert Web aufweist.

  6. Klicken Sie auf Funktionsaktivierungsabhängigkeiten (im unteren Bereich), um den Abhängigkeitenbereich zu erweitern. Klicken Sie dann auf Hinzufügen.

    Das Dialogfeld Funktionsaktivierungsabhängigkeiten hinzufügen wird angezeigt.

  7. Klicken Sie auf $Resources:WeeklyStatusFeature, und klicken Sie dann auf Hinzufügen.

  8. Klicken Sie im Projektmappen-Explorer auf den Projektknoten. Klicken Sie dann im Menü Projekt auf Neues Element hinzufügen.

    Das Dialogfeld Neues Element hinzufügen wird angezeigt.

  9. Erweitern Sie den Knoten SharePoint unter Visual C# oder Visual Basic, und klicken Sie dann auf 2010.

  10. Klicken Sie im Bereich Vorlagen auf Listeninstanz. Übernehmen Sie den Standardnamen, und klicken Sie dann auf Hinzufügen.

  11. Ersetzen Sie im Assistenten zum Anpassen von SharePoint den Wert für Wie lautet der Anzeigename der Liste? durch die folgende Zeichenfolge:

    $Resources:WeeklyStatusList
    
  12. Überprüfen Sie, dass Welche Liste soll instanziiert werden? den Wert $Resources:WeeklyStatusListTemplate (WingtipReports\ListDefinitions) aufweist.

  13. Ersetzen Sie den Wert für Beschreibung durch die folgende Zeichenfolge.

    $Resources:WeeklyStatusListDesc
    
  14. Stellen Sie sicher, dass das Kontrollkästchen Diese Listeninstanz der Schnellstartleiste hinzufügen aktiviert ist, und klicken Sie anschließend auf Fertig stellen.

    Der Ordner ListInstance1 wird im Projektmappen-Explorer angezeigt, und die Datei Elements.xml wird im Ordner angezeigt und im Editor geöffnet. Beachten Sie, dass Ressourcenausdrücke die Werte für die Attribute Title und Description des ListInstance-Elements sind.

  15. Drücken Sie STRG+UMSCHALT+S, um alles zu speichern.

Hinzufügen von Featureressourcen

Im letzten Schritt erstellen Sie Lokalisierungsressourcen für die Listeninstanz und das Feature, von dem diese bereitgestellt werden. Da diese Ressourcen spezifisch für ein bestimmtes Feature sind, können sie anstelle als globaler Ressourcen als lokale Ressourcen erstellt werden.

So fügen Sie lokale Ressourcen für ein Feature hinzu

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Ordner WeeklyStatusList, und klicken Sie Funktionsressource hinzufügen.

  2. Wählen Sie im Dialogfeld Ressource hinzufügen für Wählen Sie die Kultur der Ressourcendatei aus die Option Invariante Sprache (Invariantes Land) aus, und klicken Sie dann auf OK.

    Die Ressourcendatei wird dem Ordner WeeklyStatusList hinzugefügt. Beachten Sie, dass der Basisdateiname Resources lautet. Für Ressourcen, die für ein Feature lokal sind, wird immer dieser Basisdateiname verwendet. Beim Bereitstellen des Features werden lokale Ressourcendateien in einem Ressourcenordner unter dem Ordner des Features im Dateisystem platziert.

  3. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die soeben erstellte Ressourcendatei, und wählen Sie Öffnen mit aus.

  4. Wählen Sie im Dialogfeld Öffnen mit unter Programm zum Öffnen dieser Datei auswählen die Option XML (Text)-Editor aus. Klicken Sie anschließend auf OK.

    Die Ressource wird im XML-Editor geöffnet.

  5. Verschieben Sie im XML-Editor den Fensterinhalt an das Ende der Datei, und fügen Sie direkt über dem letzten </root>-Tag eine leere Zeile ein. Platzieren Sie die Einfügemarke in der leeren Zeile, und fügen Sie das folgende XML in die Datei ein.

      <data name="WeeklyStatusList" xml:space="preserve">
        <value>Weekly Status Reports (invariant)</value>
      </data>
      <data name="WeeklyStatusListDesc" xml:space="preserve">
        <value>Use the Weekly Status Reports list to submit progress reports. (invariant)</value>
      </data>
      <data name="WeeklyStatusListFeature" xml:space="preserve">
        <value>Weekly Status Report List (invariant)</value>
      </data>
      <data name="WeeklyStatusListFeatureDesc" xml:space="preserve">
        <value>Creates a weekly status report list. (invariant)</value>
      </data>
    
  6. Drücken Sie STRG+S, um die Ressourcendatei zu speichern, und schließen Sie die Datei anschließend.

  7. Wiederholen Sie die Schritte 1 bis 6, aber erstellen Sie dieses Mal eine Ressourcendatei für die Standardsprache Ihrer Website. Ersetzen Sie in Schritt 5 das Wort "invariant" durch den Code für die Standardsprache (z. B. en-US).

  8. Wiederholen Sie die Schritte 1 bis 6, aber erstellen Sie dieses Mal eine Ressourcendatei für eine alternative Sprache, die von Ihrer Website unterstützt wird. Ersetzen Sie in Schritt 5 das Wort "invariant" durch den Code für die alternative Sprache (z. B. es-ES).

  9. Doppelklicken Sie im Projektmappen-Explorer auf WeeklyStatusList.feature, um das Feature im Feature-Designer zu öffnen.

  10. Überprüfen Sie, dass unter Elemente in der Funktion als einziges Element ListInstance1 (WingtipReports) vorhanden ist.

  11. Klicken Sie im Feature-Designer auf Manifest (im unteren Bereich). Überprüfen Sie, dass das Manifest dem folgenden XML ähnelt:

    <Feature xmlns="https://schemas.microsoft.com/sharepoint/" 
             Title="$Resources:WeeklyStatusListFeature" 
             Description="$Resources:WeeklyStatusListFeatureDesc" 
             Id="30444f12-2c40-4d2a-92dd-68a30192f0ae" Scope="Web">
      <ActivationDependencies>
        <ActivationDependency FeatureDescription="$Resources:WeeklyStatusFeatureDesc" 
                              FeatureId="e18a0885-083e-43f6-94fe-b6d378a2468c"
                              FeatureTitle="$Resources:WeeklyStatusFeature" />
      </ActivationDependencies>
      <ElementManifests>
        <ElementManifest Location="ListInstance1\Elements.xml" />
        <ElementFile Location="Resources\Resources.en-US.resx" />
        <ElementFile Location="Resources\Resources.es-ES.resx" />
      </ElementManifests>
    </Feature>
    

    Ihr Manifest weist einen anderen Wert für das Id-Attribut auf. Die Namen für die Kultur in den Ressourcendateien können ebenfalls unterschiedlich sein.

  12. Drücken Sie STRG+UMSCHALT+S, um alles zu speichern.

Testen des Projekts

Testen Sie das Projekt, um sicherzustellen, dass es ordnungsgemäß ausgeführt wird.

So testen Sie das Projekt

  1. Drücken Sie in Visual Studio F5, um das Debugging zu starten.

    Im Ausgabebereich werden Informationen zum Erstellungs- und Bereitstellungsprozess angezeigt. Schließlich wird die Website im Browser angezeigt.

  2. Suchen Sie in der Schnellstartleiste nach einem Navigationslink zur Liste Weekly Status Reports. Als Linktitel sollte der Titel der Liste in der Standardanzeigesprache für die Website angezeigt.

  3. Klicken Sie in der rechten oberen Ecke der Seite auf den Pfeil neben Ihrem Benutzernamen. Klicken Sie auf Anzeigesprache, und klicken Sie dann auf den Namen der alternativen Sprache, die Sie in der exemplarischen Vorgehensweise verwendet haben. Überprüfen Sie, dass der Linktitel für die Liste Weekly Status Reports in die alternative Sprache geändert wird.

  4. Klicken Sie auf den Link zur Liste Weekly Status Reports. Klicken Sie anschließend auf Neues Element hinzufügen oder den entsprechenden Befehl in der alternativen Sprache.

    Das Formular Neues Element wird angezeigt.

  5. Überprüfen Sie, dass der Text für alle Felder im Formular in der alternativen Sprache angezeigt wird.

  6. Überprüfen Sie auf ähnliche Weise, dass für die Websitespalten, den Inhaltstyp und die Listenvorlage Lokalisierungsressourcen ordnungsgemäß verwendet werden.

  7. Überprüfen Sie, dass Weekly Status Reports ein Websitesammlungsfeature und Weekly Status Report List ein Websitefeature ist.

Siehe auch

Aufgaben

Exemplarische Vorgehensweise: Lokalisieren eines Webparts

Konzepte

Grundlegendes zur MUI (Multilingual User Interface)