Lokalisieren von SharePoint-Lösungen

Die Vorbereitung von Anwendungen für eine weltweite Verwendung wird als Lokalisierung bezeichnet. Bei der Lokalisierung werden die Ressourcen für einen bestimmten Kulturkreis übersetzt. Weitere Informationen finden Sie unter Globalisieren und Lokalisieren von Anwendungen. Dieses Thema bietet eine Übersicht über die Lokalisierung einer SharePoint-Lösung.

Für die Lokalisierung einer Lösung werden die hartcodierten Zeichenfolgen aus dem Code entfernt und in Ressourcendateien zusammengefasst. Eine Ressourcendatei ist eine XML-basierte Datei mit der Erweiterung .resx. Die Ressourcendatei enthält die übersetzten Versionen der in der Lösung verwendeten Zeichenfolgen. Weitere Informationen finden Sie unter Ressourcen in Anwendungen.

Hinweis

Fügen Sie Ressourcendateien von SharePoint-Lösungen ausschließlich Zeichenfolgenressourcen hinzu. Zwar ermöglicht der Ressourcen-Editor das Hinzufügen von Ressourcen, bei denen es sich nicht um Zeichenfolgen handelt, diese Ressourcen werden jedoch nicht für SharePoint bereitgestellt.

Ressourcendateien

Drei Arten von Ressourcendateien stehen zur Verfügung: Standarddateien, sprachunabhängige Dateien und sprachspezifische Dateien.

Ressourcendateityp BESCHREIBUNG
Standard Standardressourcendateien werden auch als Fallbackressource bezeichnet und enthalten lokalisierte Zeichenfolgen für die Standardkultur (beispielsweise Englisch). Sie werden verwendet, wenn keine lokalisierten Ressourcendateien für die angegebene Sprache gefunden werden. Standardressourcen umfassen keine separaten Dateien, sie werden in der Assembly der Hauptanwendung gespeichert.
Sprachunabhängig Eine Ressourcendatei mit lokalisierten Zeichenfolgen für eine Sprache, aber nicht für eine bestimmte Kultur. Beispiel: "fr" für Französisch.
Sprachspezifisch Eine Ressourcendatei mit lokalisierten Zeichenfolgen für eine Sprache und eine Kultur. Beispiel: "fr-CA" für Französisch (Kanada).

Weitere Informationen finden Sie unter Hierarchische Organisation der Ressourcen für die Lokalisierung.

Wählen Sie beim Hinzufügen einer Ressourcendatei in der Kulturliste im Dialogfeld Ressource hinzufügen die Option Invariante Sprache (Invariantes Land) aus, um in SharePoint-Projekten, die Sie in Visual Studio entwickeln, Standardressourcendateien anzugeben.

Hinzufügen einer Ressourcendatei

Die Befehle zum Hinzufügen von Ressourcendateien befinden sich im Kontextmenü des Projektmappenknotens und der Funktionsknoten im Projektmappen-Explorer.

So fügen Sie einer SharePoint-Projektmappe eine globale Ressourcendatei hinzu

  1. Öffnen Sie in Visual Studio eine SharePoint-Projektmappe.

  2. Wählen Sie im Projektmappen-Explorer einen SharePoint-Projektknoten und dann auf der Menüleiste Projekt>Neues Element hinzufügen aus.

  3. Wählen Sie im Dialogfeld Neues Element hinzufügen die Vorlage Globale Ressourcendatei und anschließend die Schaltfläche Hinzufügen aus.

    Hinweis

    Die Projektelementvorlage „Globale Ressourcendatei“ wird nur angezeigt, wenn ein SharePoint-Projektelement ausgewählt ist.

  4. Wählen Sie im Dialogfeld Ressource hinzufügen eine Kultur für die Ressourcendatei aus, z. B. „Englisch (USA)“.

    In diesem Schritt wird Ihrer Projektmappe eine globale Ressourcendatei im Format {Resource_x_}.{culture}.resx hinzugefügt, z. B. Resource1.en-US.resx.

  5. Wenn der Ressourcen-Editor in Visual Studio geöffnet wird, fügen Sie der Ressourcendatei dort Ressourcen hinzu.

So fügen Sie einer SharePoint-Funktion eine Funktionsressourcendatei hinzu

  1. Wenn die SharePoint-Projektmappe noch nicht in Visual Studio geöffnet ist, öffnen Sie sie.

  2. Öffnen Sie im Projektmappen-Explorer das Kontextmenü für den Namen einer Funktion unter dem Knoten Funktionen, und wählen Sie dann Funktionsressource hinzufügen aus.

    In diesem Schritt wird der Funktion eine Ressourcendatei im Format {ResourceFileName}.{culture}{.resx} hinzugefügt, z. B. Feature1.en-US.resx.

  3. Wenn der Ressourcen-Editor in Visual Studio geöffnet wird, fügen Sie der Ressourcendatei dort Ressourcen hinzu.

Lokalisieren von Visual Studio SharePoint-Lösungen

Beim Lokalisieren einer Lösung müssen alle den Benutzern angezeigten Textinformationen berücksichtigt werden. Informationsmeldungen, Fehlermeldungen und Benutzeroberflächenzeichenfolgen müssen übersetzt (lokalisiert) werden, und die Übersetzungen müssen in die Ressourcendateien eingefügt werden.

Jede Zeichenfolge in einer Ressourcendatei besitzt einen eindeutigen Bezeichner. Verwenden Sie in jeder Ressourcendatei den gleichen Bezeichner für die übersetzte Zeichenfolge. Wenn also "String1" der Bezeichner für die erste Zeichenfolge in der Standardressourcendatei ist, verwenden Sie diesen Bezeichner auch in den sprachspezifischen Ressourcendateien für die erste Zeichenfolge.

In Visual Studio-SharePoint-Anwendungen werden in der Regel drei Bereiche lokalisiert: Funktionen, ASPX-Seitenmarkup und Code. Zur Veranschaulichung wird in den folgenden Abschnitten von einer SharePoint-Lösung ausgegangen, die ins Deutsche und ins Japanische lokalisiert werden soll. Die Standardsprache ist Deutsch.

Lokalisieren von Features

Zum Lokalisieren einer Funktion müssen der hartcodierte Titel und die Beschreibung der Funktion durch einen Ausdruck ersetzt werden, durch den auf den übersetzten Titel und die Zeichenfolge in der lokalisierten Ressourcendatei verwiesen wird. Diese Änderung wird in Visual Studio im Funktions-Designer vorgenommen.

Zum Lokalisieren der englischen Funktion für Deutsch und Japanisch werden dem Projekt drei Ressourcendatei-Projektelemente hinzugefügt – jeweils eins für Englisch, Deutsch und Japanisch. Featureressourcendateien können nicht zum Lokalisieren von ASPX-Markup oder -Code verwendet werden. Hierfür werden separate Ressourcendateien benötigt.

Nach dem Erstellen der Funktionsressourcendateien werden ihnen die übersetzten Zeichenfolgen hinzugefügt. Der Zugriff auf die lokalisierten Zeichenfolgen erfolgt mittels eines Ausdrucks im folgenden Format:

$Resources:String ID

Funktionsressourcen in Visual Studio werden immer mit „Resources“ benannt. Wenn Sie eine andere Sprache als die invariante Sprache auswählen, wird dem Ressourcendateinamen die Kultur-ID hinzugefügt. Wenn Sie beispielsweise eine Standard-Featureressourcendatei mit invarianter Sprache hinzufügen, wird diese Resources.resx genannt. Wenn Sie eine sprachspezifische Featureressource hinzufügen, indem Sie als Kultur die Option „Japanisch (Japan)“ auswählen, wird die Datei mit Resources.ja-JP.resx benannt. Der Name einer Featureressourcendatei wird automatisch zugewiesen und kann nicht geändert werden.

Eine Featureressource gilt nur lokal für das Feature, dem sie hinzugefügt wird. Wenn Sie Ressourcen erstellen möchten, die von jeder Feature- oder Elementdatei in der Lösung verwendet werden können, fügen Sie dem Projekt anstelle einer Featureressourcendatei eine globale Ressourcendatei hinzu. Das Projektelement Globale Ressourcendatei befindet sich im Dialogfeld Neues Element hinzufügen unter SharePoint im Ordner 2010. Das Bereitstellungsziel globaler Ressourcendateien ist der Ordner "\Resources" des SharePoint-Stammordners.

So lokalisieren Sie eine Funktion

  1. Öffnen Sie im Projektmappen-Explorer das Kontextmenü für den Knoten Feature1, und wählen Sie anschließend Funktionsressource hinzufügen aus.

  2. Wählen Sie im Dialogfeld Ressource hinzufügen die Option Invariante Sprache aus der Liste als Kultur für die Ressourcendatei der Standardsprachfunktion aus.

  3. Wiederholen Sie den vorherigen Schritt für jede lokalisierte Sprache, und wählen Sie die Sprachen Ihrer Wahl für die lokalisierten Funktionsressourcendateien aus.

    Es werden separate Funktionsressourcendateien erstellt: eine für die Standardsprache und eine für jede lokalisierte Sprache, die Sie unterstützen möchten.

  4. Öffnen Sie jede Ressourcendatei im Ressourcen-Editor, und geben Sie dann alle Zeichenfolgen-IDs und deren Werte ein.

    Geben Sie beispielsweise in der Standardfunktions-Ressourcendatei die Zeichenfolgen-ID Title mit dem Wert Mein Funktionstitel und die zweite Zeichenfolgen-ID Description mit dem Wert Meine Funktionsbeschreibung ein. Verwenden Sie für jede lokalisierte Ressourcendatei die gleichen Zeichenfolgen-IDs, die in der Standardfunktionsressource verwendet werden, geben Sie jedoch lokalisierte Zeichenfolgen für die Werte ein.

  5. Nachdem Sie alle Ressourcenwerte eingegeben haben, öffnen Sie das Kontextmenü für die Funktion (z. B. Feature1.feature), und wählen Sie dann Ansichts-Designer aus, um die Funktion im Funktions-Designer zu öffnen.

  6. Um die Felder Titel und Beschreibung in der Funktion zu lokalisieren, verwenden Sie das folgende Format, um Werte in deren Felder einzugeben:

    $Resources:Zeichenfolgen-ID

    Geben Sie beispielsweise „$Resources:Title in das Feld Funktionstitel und $Resources:Description in das Feld Funktionsbeschreibung ein.

    Die Zeichenfolgen-IDs müssen mit denen übereinstimmen, die in den Ressourcendateien verwendet werden.

  7. Drücken Sie die F5-TASTE, um die Anwendung zu erstellen und auszuführen.

  8. Öffnen Sie in SharePoint das Menü Websiteaktionen, wählen Sie Websiteeinstellungen und dann im Abschnitt Websiteaktionen den Link Websitefunktionen verwalten aus.

  9. Legen Sie die Anzeigesprache in SharePoint auf eine Sprache fest, die nicht der Standardsprache entspricht.

    Der lokalisierte Funktionstitel und die Beschreibung werden in der Anwendung angezeigt. Zum Anzeigen lokalisierter Ressourcen muss auf dem SharePoint-Server ein Sprachpaket installiert sein, das der Kultur der Ressourcendatei entspricht.

Lokalisieren von ASPX-Seitenmarkup

Wenn Sie ASP.NET-Seiten lokalisieren, fügen Sie dem Projekt drei Ressourcendatei-Projektelemente hinzu: eins für Englisch, eins für Deutsch und eins für Japanisch. Wenn Sie neben dem Markup nicht auch noch Code lokalisieren müssen, können Sie stattdessen globale Ressourcendateien hinzufügen.

ASP.NET-Seiten (ASPX) verwenden in der Regel hartcodierte Zeichenfolgenwerte. Wenn Sie die Zeichenfolgen lokalisieren möchten, ersetzen Sie diese durch Ausdrücke, die auf lokalisierte Ressourcen verweisen.

So lokalisieren Sie ASPX-Markup

  1. Fügen Sie separate Ressourcendateien für die Standardsprache und für jede lokalisierte Sprache hinzu.

    Wenn Sie nur Markup und nicht Code lokalisieren, fügen Sie ein Projektelement vom Typ „Globale Ressourcendatei“ hinzu. Wenn Sie Markup und Code lokalisieren, fügen Sie ein Projektelement vom Typ „Ressourcendatei“ hinzu.

    1. Öffnen Sie zum Hinzufügen einer globalen Ressourcendatei im Projektmappen-Explorer das Kontextmenü für ein SharePoint-Projektelement, und klicken Sie dann auf Hinzufügen>Neues Element. Wählen Sie unter dem SharePoint-Knoten 2010 die Vorlage Globale Ressourcendatei aus.

    2. Öffnen Sie zum Hinzufügen einer Ressourcendatei im Projektmappen-Explorer das Kontextmenü für ein SharePoint-Projektelement, und klicken Sie dann auf Hinzufügen>Neues Element. Wählen Sie die Vorlage Ressourcendatei aus.

    Hinweis

    Fügen Sie die Ressourcendateien einem SharePoint-Projektelement hinzu, um die Eigenschaft „Bereitstellungstyp“ zu aktivieren. Diese Eigenschaft ist später in dieser Prozedur erforderlich. Wenn Ihre Projektmappe kein SharePoint-Projektelement enthält, können Sie ein leeres SharePoint-Projekt hinzufügen und dessen Standarddatei Elements.xml entfernen.

  2. Benennen Sie die Ressourcendatei für die Standardsprache mit einem beliebigen Namen, und versehen Sie diesen mit der Erweiterung .resx (z. B. „MyAppResources.resx“). Verwenden Sie für jede lokalisierte Ressourcendatei den gleichen Basisnamen, aber fügen Sie jeweils die Kultur-ID hinzu. Geben Sie also beispielsweise einer für Deutsch lokalisierten Ressource den Namen MyAppResources.de-DE.resx.

  3. Ändern Sie den Wert der Eigenschaft Bereitstellungstyp der einzelnen Ressourcendateien in AppGlobalResource, damit die Bereitstellung im Ordner „App_GlobalResources“ des Servers erfolgt. Der Ordner „App_GlobalResources“ befindet sich unter „C:\inetpub\wwwroot\wss\VirtualDirectories\<Portnummer>\App_GlobalResources.

  4. Wenn Sie mithilfe der Ressourcen neben ASPX-Markup auch Code lokalisieren, behalten Sie für die Eigenschaft Buildvorgang der einzelnen Dateien den Wert Eingebettete Ressource bei. Wenn Sie die Ressourcendateien dagegen nur zum Lokalisieren von Markup verwenden, können Sie den Eigenschaftenwert der Dateien optional in Inhalt ändern. Weitere Informationen finden Sie unter Lokalisieren von SharePoint-Lösungen.

    Hinweis

    Verschieben Sie bei Verwendung nicht globaler Ressourcendateien die nicht globalen Ressourcendateien in den Projektelementordner, um die Eigenschaft "Bereitstellungstyp" und andere SharePoint-spezifische Eigenschaften zu aktivieren.

  5. Öffnen Sie jede Ressourcendatei, und fügen Sie lokalisierte Zeichenfolgen hinzu. Verwenden Sie hierbei in jeder Datei die gleichen Zeichenfolgen-IDs.

  6. Ersetzen Sie im XML-Markup für die ASPX-Seite oder das ASPX-Steuerelement die hartcodierten Zeichenfolgen durch Werte im folgenden Format:

    <%$Resources:Resource File Name, String ID%>
    

    Wenn Sie beispielsweise den Text für ein Bezeichnungs-Steuerelement auf einer Anwendungsseite lokalisieren möchten, ändern Sie folgenden Code:

    <asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
    <asp:Label ID="lbl" runat="server" Text="Label text"></asp:Label>
    </asp:Content>
    

    in

    <asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
    <asp:Label ID="lbl" runat="server" Text="<%$Resources:MyAppResources,String1%>"></asp:Label>
    </asp:Content>
    
  7. Drücken Sie die F5-TASTE, um die Anwendung zu erstellen und auszuführen.

  8. Legen Sie die Anzeigesprache in SharePoint auf eine Sprache fest, die nicht der Standardsprache entspricht.

    In der Anwendung werden die lokalisierten Zeichenfolgen angezeigt. Zum Anzeigen lokalisierter Ressourcen muss auf dem SharePoint-Server ein Sprachpaket installiert sein, das der Kultur der Ressourcendatei entspricht.

Lokalisieren von Code

Neben Funktionszeichenfolgen und ASP.NET-Markup müssen auch die im Code der Projektmappe enthaltenen Meldungs- und Fehlerzeichenfolgen lokalisiert werden. Lokalisierte Informations- und Fehlermeldungen sind in Satellitenassemblys enthalten. Satellitenassemblys enthalten Zeichenfolgen, die für Benutzer*innen angezeigt werden, beispielsweise Benutzeroberflächentext und Ausgabemeldungen wie Ausnahmen.

Visual Studio verwendet das Hub-and-Spoke-Standardmodell von .NET Framework. Der Hub (Hauptprogrammassembly) enthält die Ressourcen für die Standardsprache. Die Spokes (Satellitenassemblys) enthalten die sprachspezifischen Ressourcen. Weitere Informationen finden Sie unter Verpacken und Bereitstellen von Ressourcen. Satellitenassemblys werden aus Ressourcendateien ( .resx-Dateien) kompiliert. Wenn Sie Ihrem Projekt und dem Projektmappenpaket sprachspezifische Ressourcendateien hinzufügen, kompiliert Visual Studio die Ressourcendateien zu Satellitenassemblys mit dem Namen {Projektname}.resources.dll.

So lokalisieren Sie Code

  1. Öffnen Sie im Projektmappen-Explorer das Kontextmenü für ein Projektelement, und wählen Sie anschließend Hinzufügen>Modul aus.

    Wählen Sie die Vorlage Ressourcendatei aus.

    Hinweis

    Fügen Sie die Ressourcendatei einem SharePoint-Projektelement hinzu, damit die Eigenschaft "Bereitstellungstyp" verfügbar ist. Diese Eigenschaft ist später in dieser Prozedur erforderlich.

  2. Geben Sie der Ressourcendatei für die Standardsprache einen beliebigen Namen, und versehen Sie sie mit der Erweiterung .resx (z. B. MyAppResources.resx).

  3. Wiederholen Sie die Schritte 1 und 2, um dem SharePoint-Projektelement separate Ressourcendateien hinzuzufügen: jeweils eine für jede lokalisierte Sprache.

    Verwenden Sie für jede lokalisierte Ressourcendatei den gleichen Basisnamen, aber fügen Sie jeweils die Kultur-ID hinzu. Benennen Sie zum Beispiel eine deutschsprachige Ressourcendatei als MyAppResources.de-DE.resx.

  4. Öffnen Sie die einzelnen Ressourcendateien, und fügen Sie ihnen lokalisierte Zeichenfolgen hinzu. Verwenden Sie in jeder Datei die gleichen Zeichenfolgen-IDs.

  5. Ändern Sie den Wert der Eigenschaft Deployment Type jeder Ressourcendatei in AppGlobalResource, damit alle Dateien im Ordner „App_GlobalResources“ des Servers bereitgestellt werden.

  6. Übernehmen Sie für die Eigenschaft Buildaktion der einzelnen Dateien den Wert Eingebettete Ressource.

    Eingebettete Ressourcen werden in die DLL des Projekts kompiliert.

  7. Erstellen Sie das Projekt, um die Satelliten-DLLs für die Ressource zu erstellen.

  8. Wählen Sie im Paket-Designer die Registerkarte Erweitert aus, und fügen Sie anschließend die Satellitenassembly hinzu.

  9. Stellen Sie im Feld Speicherort dem Pfad zum Speicherort einen Ordner mit der Kultur-ID voran, z. B. de-DE\<Projektelementname>.resources.dll.

  10. Sofern die Lösung die Assembly System.Web nicht bereits referenziert, fügen Sie einen entsprechenden Verweis ein, und fügen Sie im Code eine Anweisung zu System.Web hinzu.

  11. Suchen Sie im Code nach allen hartcodierten Zeichenfolgen, die Benutzern angezeigt werden, z. B. Benutzeroberflächentexte, Fehler und Meldungstexte. Ersetzen Sie diese durch einen Aufruf der GetGlobalResourceObject-Methode mit der folgenden Syntax:

    HttpContext.GetGlobalResourceObject("Resource File Name", "String ID")
    
  12. Drücken Sie die Taste F5, um die Anwendung zu erstellen und auszuführen.

  13. Legen Sie die Anzeigesprache in SharePoint auf eine Sprache fest, die nicht der Standardsprache entspricht.

    In der Anwendung werden die lokalisierten Zeichenfolgen angezeigt. Zum Anzeigen lokalisierter Ressourcen muss auf dem SharePoint-Server ein Sprachpaket installiert sein, das der Kultur der Ressourcendatei entspricht.

In nicht lokalisiertem Code werden hartcodierte Zeichenfolgenwerte verwendet. Zum Lokalisieren der Codezeichenfolgen werden diese durch Aufrufe von GetGlobalResourceObject ersetzt – einer Methode zum Verweisen auf lokalisierte Ressourcen.

Lokalisieren von Webpartcode

Webparts enthalten eine benutzerdefinierte Funktion des Eigenschaften-Editors mit Codeattributen, von denen hartcodierte Zeichenfolgen wie „WebDisplayName“, „Category“ oder „WebDescription“ verwendet werden. Erstellen Sie eine separate, von der Klasse des Attributs abgeleitete Klasse, um die Zeichenfolgenwerte für diese Attribute zu ersetzen. Legen Sie in diesen Klassen die Eigenschaft des Attributs fest. Die Attributeigenschaft hängt von der Basisklasse ab. So lautet beispielsweise die WebDisplayName-Attributeigenschaft "DisplayNameValue", und die WebDescription-Attributeigenschaft lautet "DescriptionValue".

Verweisen Sie in der abgeleiteten Klasse auf die Zeichenfolgen-ID aus der Ressourcendatei sowie auf das ResourceManager-Objekt, um den lokalisierten Wert für die Zeichenfolgen-ID abzurufen. Geben Sie diesen Wert an das Eigenschaften-Editor-Attribut zurück.

Weitere Informationen