Gewusst wie: Bereitstellen lokalisierter Sandkastenlösungen mithilfe von Satellitenassemblys

In diesem Thema wird erläutert, wie Sie lokalisierte Versionen von Lösungen mit eingeschränkter Sicherheitsstufe erstellen, die eine oder mehrere Assemblys enthalten.

Letzte Änderung: Donnerstag, 14. April 2011

Gilt für: SharePoint Foundation 2010

Die Vorgehensweise beim Bereitstellen lokalisierter Lösungen mit eingeschränkter Sicherheitsstufe und lokalisierter Farmlösungen unterscheidet sich bei bestimmten Aspekten.

HinweisHinweis

In diesem Thema wird davon ausgegangen, dass Sie die in Vorbereitung auf das Erstellen lokalisierter SharePoint-Lösungen beschriebenen Verfahren ausgeführt haben und dass Englisch und Spanisch in Ihrer Entwicklungsfarm verfügbar sind (Sie können aber auch ein anderes Sprachpaar verwenden).

Bei dem fortlaufenden Beispiel in diesem Thema handelt es sich um eine Lösung mit eingeschränkter Sicherheitsstufe mit einem einfachen Webpart. Die beschriebene Technik – Erstellen von Satellitenassemblys – gilt jedoch nur für eine Lösung mit eingeschränkter Sicherheitsstufe, die eine oder mehrere Assemblys enthält. Nur die Ressourcen in Assemblys werden mit der in diesem Thema beschriebenen Technik lokalisiert. Weitere Informationen zum Lokalisieren des Namens und der Beschreibung eines Features, die in einem Featurekatalog angezeigt werden, finden Sie unter Gewusst wie: Lokalisieren von Featureattributen in einer Sandkastenlösung.

HinweisHinweis

Die Zeichenfolgen in der WEBPART-Datei einer Lösung mit eingeschränkter Sicherheitsstufe können nur lokalisiert werden, wenn lokalisierte Ressourcendateien im Rahmen einer Farmlösung separat im Dateisystem installiert wurden. Eine Lösung mit eingeschränkter Sicherheitsstufe erstellen Sie in den meisten Fällen, weil Sie nicht über die Berechtigung zum Installieren von Farmlösungen in den Zielfarmen verfügen. In diesen Fällen gibt es keine praktische Methode, um die WEBPART-Datei in einer Lösung mit eingeschränkter Sicherheitsstufe zu lokalisieren. Der Name des Webparts im Webpartkatalog ist deshalb in Websites für alle Sprachen identisch.

So erstellen Sie die lokalisierten Ressourcendateien

  1. Starten Sie in Microsoft Visual Studio ein leeres SharePoint-Projekt als Sandkastenprojekt. Im fortlaufenden Beispiel heißt dieses Projekt LocalizedWebPart.

  2. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektnamen, und wählen Sie Eigenschaften aus.

  3. Öffnen Sie im Fenster Eigenschaften die Registerkarte Ressourcen.

  4. Klicken Sie in der Mitte des Fensters auf den Link Dieses Projekt enthält keine.... Eine Datei Resources.resx wird im Ordner Eigenschaften des Projektmappen-Explorers erstellt, und die Datei wird im Ressourcen-Editor von Visual Studio geöffnet. Diese Standardressourcendatei enthält dann die Zeichenfolgen, die in allen Websites in Sprachen verwendet werden, für die Sie keine lokalisierte Version der Zeichenfolgen bereitstellen werden. Für die Zeichenfolgen in dieser Datei sollte demnach höchstwahrscheinlich eine Zweitsprache der SharePoint-Benutzer verwendet werden, für die Sie keine Übersetzung der Zeichenfolgen anbieten. Traditionell wird zu diesem Zweck Englisch verwendet, aber es gibt Ausnahmen. Wenn das Feature beispielsweise in erster Linie in Ländern verwendet wird, die ehemalige französische Kolonien sind, wird von den Benutzern wahrscheinlich Französisch häufiger als Zweitsprache gesprochen als dies vergleichsweise bei Englisch der Fall ist. Im fortlaufenden Beispiel in diesem Thema wird Englisch als Standardsprache verwendet.

  5. Für das Webpart in diesem Projekt sind vier Zeichenfolgen erforderlich:

    • Text für eine Schaltfläche

    • Standardtext für eine Beschriftung

    • Beschriftungstext für eine gerade Anzahl von Klicks auf die Schaltfläche

    • Beschriftungstext für eine ungerade Anzahl von Klicks auf die Schaltfläche

    Fügen Sie der Ressourcendatei Zeichenfolgen mit den folgenden Namen und Werten hinzu.

    Name

    Wert

    ButtonText

    Click this button!

    EvenLabelText

    The button has been clicked an even number of times. Click it again.

    InitialLabelText

    The button has never been clicked.

    OddLabelText

    The button has been clicked an odd number of times. Click it again.

    Nun müssen Sie separate Ressourcendateien für jede Fremdsprache erstellen, für die Sie lokalisierte Zeichenfolgen bereitstellen, und sie dem Ordner Eigenschaften des Projektmappen-Explorers hinzufügen. Die restlichen Schritte dieses Verfahrens stellen eine Möglichkeit dar, um dies zu erreichen.

  6. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektnamen, und wählen Sie Ordner in Windows Explorer öffnen aus.

  7. Öffnen Sie den Ordner Eigenschaften.

  8. Erstellen Sie für jede Fremdsprache, für die Sie lokalisierte Zeichenfolgen bereitstellen, eine Kopie der Datei Resources.aspx im selben Ordner. Jede Datei sollte nach dem Muster Resources.LCID.resx benannt werden, wobei LCID ein Sprach/Kultur-Code ist. Erstellen Sie für das fortlaufende Beispiel zwei Dateien: Resources.en-us.resx für Englisch und Resources.es-es.resx für Spanisch.

  9. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektnamen, wählen Sie Hinzufügen und dann Vorhandenes Element aus. Ein Dialogfeld zum Durchsuchen wird mit dem Projektordner als aktuellen Ordner geöffnet.

  10. Öffnen Sie den Ordner Eigenschaften.

  11. Wählen Sie alle erstellten sprachspezifischen Ressourcendateien aus (jedoch nicht die Standarddatei Resources.resx), und klicken Sie dann auf Hinzufügen. Die Dateien werden im Projektmappen-Explorer dem Stammverzeichnis des Projekts hinzugefügt.

  12. Wählen Sie im Projektmappen-Explorer alle neuen sprachspezifischen Dateien aus, und ziehen Sie sie in den Ordner Eigenschaften. Sie werden aufgefordert, das Überschreiben der Dateien zu bestätigen. Klicken Sie auf Ja.

  13. Doppelklicken Sie auf eine der fremdsprachigen Dateien, um sie im Ressourcen-Editor zu öffnen.

  14. Ersetzen Sie den Wert in jeder Zeile durch die entsprechende Übersetzung. Nehmen Sie in der Name-Spalte keine Änderungen vor. Verwenden Sie für die Datei Resources.es-es.resx im fortlaufenden Beispiel die folgenden spanischen Zeichenfolgen.

    Name

    Wert

    ButtonText

    ¡Presiona este botón!

    EvenLabelText

    El botón ha sido presionado un número de veces par. Presiónalo nuevamente

    InitialLabelText

    El botón nunca ha sido presionado.

    OddLabelText

    El botón ha sido presionado un número de veces impar. Presiónalo nuevamente.

  15. Wiederholen Sie die letzten beiden Schritte für jede sprachspezifische Ressourcendatei.

    HinweisHinweis

    Wenn die sprachspezifische Ressourcendatei mit der Sprache identisch ist, die Sie als Standardsprache verwenden (wie dies bei der Datei Resources.en-us.resx im fortlaufenden Beispiel der Fall ist), müssen Sie die Datei natürlich überhaupt nicht ändern. In vielen Situationen ist keine sprachspezifische Datei für dieselbe Sprache erforderlich, die in der Ressourcendatei als Standardsprache verwendet wird, insbesondere wenn in den Dateien nur Zeichenfolgen als Ressourcen vorhanden sind. Ressourcendateien können jedoch Bilder, Symbole, Dateien und sonstige Ressourcen enthalten. Manchmal benötigen Sie die Standardressourcendatei, um ein Bild oder eine sonstige Ressource, die von der entsprechenden Ressource in allen sprachspezifischen Dateien abweicht, zu verwenden.

So erstellen Sie eine Resources-Klasse und die Satellitenassemblys und fügen sie dem Lösungspaket hinzu

  1. Wählen Sie in Visual Studio im Menü Erstellen die Option Projektmappe erstellen aus. Von Visual Studio werden die folgenden beiden Aktionen ausgeführt:

    • MSIL-Code (Microsoft Intermediate Language) wird generiert und in die Hauptassembly des Projekts eingefügt:

      • Der neue Namespace Projekt.Properties wird erstellt, wobei Projekt der Name des Visual Studio-Projekts ist.

      • Die Klasse Resources wird im Namespace deklariert.

      • Eine static-Eigenschaft wird der neuen Klasse für jede Zeichenfolge in der Standardsprachenressourcendatei hinzugefügt.

    • Für jede Fremdsprache wird in Abhängigkeit von der Zielkonfiguration ein Unterordner für den Ordner Debug oder Release in Ihrem Projekt erstellt und mit der Gebietsschema-ID (LCID) der Sprache benannt. In jedem dieser Ordner befindet sich eine Assembly namens Projekt.resources.dll, die eine kompilierte Version der Zeichenfolgen für die Sprache enthält. Sie werden als Satellitenassemblys bezeichnet.

  2. Die Satellitenassemblys müssen dem Lösungspaket hinzugefügt werden. Doppelklicken Sie im Projektmappen-Explorer auf die PACKAGE-Datei, um sie im Paket-Designer zu öffnen.

  3. Klicken Sie unten im Designer auf die Registerkarte Erweitert.

  4. Klicken Sie auf Hinzufügen, und wählen Sie dann Vorhandene Assembly hinzufügen aus.

    HinweisHinweis

    Wählen Sie nicht Assembly aus Projektausgabe hinzufügen aus. Für den Paket-Designer zählen die Satellitenassemblys nicht als Projektausgabe.

  5. Klicken Sie im Dialogfeld Vorhandene Assembly hinzufügen auf die Schaltfläche mit den drei Punkten (...), und navigieren Sie zu einer der Satellitenassemblys in einem Sprachunterordner des Ordners Debug (oder Release). Klicken Sie auf Öffnen.

  6. Lassen Sie Bereitstellungsziel auf GlobalAssemblyCache festgelegt. (Dies ist ein technisches Detail, denn Assemblys in Lösungen mit eingeschränkter Sicherheitsstufe werden nicht im globalen Assemblycache bereitgestellt. Weitere Informationen finden Sie unter Wo werden Assemblys in Sandkastenlösungen bereitgestellt?.)

  7. Im Feld Speicherort müssen Sie dem Satellitenassemblynamen den Sprachunterordner anfügen. Fügen Sie beispielsweise für die spanische Satellitenassembly im Unterordner es-es "es-es\" vor dem Assemblynamen hinzu. Wenn Sie damit fertig sind, hat Speicherort den Wert LCID\Projekt.resources.dll; beispielsweise es-es\LocalizedWebPart.resources.resx.

    HinweisHinweis

    Wenn Sie bereit sind, die Zielkonfiguration von Debug in Release zu ändern, müssen Sie alle Satellitenassemblys aus dem Projekt entfernen, die Satellitenassemblys neu erstellen und sie anschließend aus den LCID-Unterordnern des Ordners Release erneut in Ihrem Projekt hinzufügen. Falls Sie die Zielkonfigurationen häufig ändern müssen, erstellen Sie einen gleichrangigen Ordner für die Ordner Debug und Release. Erstellen Sie ein Postbuildskript, mit dem diese LCID-Unterordner in Ihren neuen Ordner kopiert werden. Anschließend fügen Sie die Assemblys im neuen Speicherort des Lösungspakets hinzu. Nur das Skript muss geändert werden, wenn Sie Zielkonfigurationen ändern.

  8. Wiederholen Sie die letzten vier Schritte für jede Satellitenassembly, und speichern Sie alle Dateien.

So erstellen Sie das Beispielwebpart und verweisen auf die lokalisierten Zeichenfolgen

  1. Fügen Sie im Projektmappen-Explorer dem Projekt ein SharePoint-Webpartelement hinzu. Im fortlaufenden Beispiel heißt das Webpart OneButton.

  2. Öffnen Sie im Projektmappen-Explorer die Codedatei für das Webpart. Im fortlaufenden Beispiel wird C# verwendet, weshalb die Datei OneButton.cs heißt.

  3. Fügen Sie, wie im folgenden Beispiel dargestellt, der benutzerdefinierten Webpartklasse zwei protected-Felder hinzu.

    protected Button button1;
    protected Label label1;
    
  4. Fügen Sie der CreateChildControls-Methode den folgenden Code hinzu:

    button1 = new Button();
    label1 = new Label();
    
    button1.Text = Properties.Resources.ButtonLabel;    
    label1.Text = Properties.Resources.InitialLabelText;
    
    button1.Click += new EventHandler(button1_Click);
    
    Controls.Add(button1);
    Controls.Add(new LiteralControl("<br />"));
    Controls.Add(label1); 
    

    Beachten Sie, dass mit zwei Codezeilen Zeichenfolgen zugewiesen werden, indem auf Eigenschaften in der Resources-Klasse verwiesen wird, die von Visual Studio generiert und in die Hauptassembly eingefügt wurde. Der get-Accessor dieser Eigenschaften gibt eine Zeichenfolge aus der Satellitenassembly zurück, die der Sprache der aktuellen Website zugeordnet ist. Falls für die Sprache der Website keine Satellitenassembly vorhanden ist, wird die von Ihnen in der Standardressourcendatei definierte Zeichenfolge zurückgegeben.

  5. Fügen Sie der benutzerdefinierten Webpartklasse den folgenden Ereignishandler hinzu.

    void button1_Click(object sender, EventArgs e)
    {           
        if ((label1.Text == Properties.Resources.InitialLabelText) 
             || (label1.Text == Properties.Resources.EvenLabelText))
        {
            label1.Text = Properties.Resources.OddLabelText;
        }
        else
        {
            label1.Text = Properties.Resources.EvenLabelText;
        }       
    }
    
  6. Erstellen und packen Sie die Lösung.

So testen Sie die Lokalisierung

  1. Stellen Sie das Lösungspaket im Lösungskatalog einer Websitesammlung bereit, die in einer der Fremdsprachen erstellt wurde, und aktivieren Sie die Lösung.

  2. Navigieren Sie zur Seite Websiteeinstellungen, und öffnen Sie den Featurekatalog der Websitesammlung bzw. der Stammwebsite, je nachdem, ob der Gültigkeitsbereich des Features Website oder Web ist. (In diesem fortlaufenden Beispiel muss es Website sein, da Features, die Webparts enthalten, nur mit dem Bereich Website bereitgestellt werden sollten.)

  3. Aktivieren Sie das Feature

  4. Navigieren Sie zu einer Webparts-Seite, fügen Sie der Seite das Webpart hinzu, und verwenden Sie es. Die Zeichenfolgen sollten in der Sprache der Website angezeigt werden.

  5. Wiederholen sie die letzten vier Schritte für jede Fremdsprache, für die Sie eine Satellitenassembly erstellt haben.

  6. Wiederholen Sie die Bereitstellung und Aktivierung für eine fremdsprachige Websitesammlung, für die Sie keine sprachspezifische Ressourcendatei erstellt haben. Die Zeichenfolgen des Webparts sollten jene Zeichenfolgen sein, die Sie der Standardressourcendatei hinzugefügt werden.

Siehe auch

Konzepte

Vorbereitung auf das Erstellen lokalisierter SharePoint-Lösungen

Wo werden Assemblys in Sandkastenlösungen bereitgestellt?

Best Practices für die Entwicklung von Sandkastenlösungen

Weitere Ressourcen

Lokalisierung von Sandkastenlösungen